Build a business and earn and income with hundreds of training tutorials

Start Your Own Business or Grow an Existing One

Hundreds of step-by-step video tutorials and tools show you how to find profitable markets, get product ideas, source the best products to sell, build profitable websites easily, and drive qualified traffic. Plus, discover how to outsource it all.

Everything you need to start or grow your own highly profitable web business — regardless of size or model.

  • 1,000s of ready-to-sell products
  • Ideal for any skill level or business
  • Learn anywhere, anytime, 24/7
  • Use it risk-free for a full 30 days

Want More? Click Here For Details »


Written by Michel Fortin

How to Make Salesletters Interactive

Buy key on a white computer keyboard with clipping pathIn The Death of The Saleslet­ter, I talked about hid­ing con­tent so it could open up based on a user’s actions and thereby per­son­al­iz­ing the saleslet­ter, dynam­i­cally, on the fly.

You can hide con­tent on the same sales page, mak­ing the page look shorter and less intim­i­dat­ing. And only desired con­tent appears depend­ing on a user’s choices.

What does using this tac­tic help to do?

In some cases, peo­ple break saleslet­ters down into var­i­ous pages, and add links to them in the let­ter. I don’t rec­om­mend this with long-​​copy saleslet­ters. Tra­di­tion­ally, I rec­om­mend that the extra con­tent opens up in a pop-​​up win­dow instead, as to not distract.

But with this tac­tic, and other than the poten­tial for per­son­al­iza­tion, which is its biggest ben­e­fit, it means that peo­ple read­ing a saleslet­ter don’t have to be both­ered by…

  1. Open­ing up annoy­ing pop-​​ups;
  2. Being dis­tracted such as open­ing another page, where you run the risk of them never com­ing back to the saleslet­ter or, worse yet, come back but hav­ing lost the momen­tum they’ve gained by read­ing to that point;
  3. Or being intim­i­dated by the appear­ance of a v-​​e-​​e-​​e-​​r-​​r-​​r-​​r-​​y long let­ter when they really don’t need all of it, which may lose read­ers before they even begin reading.

This process, called “tog­gling”, is done with a sim­ple bit of javascript code and CSS.

Essen­tially, you insert the con­tent you wish to hide between two <div></div> tags in the HTML code, and make it hid­den using CSS (i.e., “cas­cad­ing style sheet”).

When peo­ple click on a link, the con­tent “unhides” and opens up on the same page. The link doesn’t have to be near the con­tent. It can be any­where on the same page.

Links are not the only trig­gers, either.

If the user per­forms any kind of action, whether it’s click­ing a link or an image, scrolling to a spe­cific area of the page, watch­ing a video or audio, or press­ing a form but­ton (like a sub­mit, check­box or radio but­ton, for exam­ple), it can still work the same.

Admit­tedly, I’ve seen some truly cre­ative, out-​​of-​​this-​​world ways of apply­ing this. I call them “smart saleslet­ters.” But this tac­tic is just a very basic way of doing it.

And it won’t work on javascript-​​disabled browsers — I’ve seen slick Flash saleslet­ters accom­plish this bet­ter. But it will work on 98% of browsers out there, if not more.

Keep in mind, more and more browsers have pop-​​up block­ers than they do have their javascript dis­abled. So this tech­nique is the lesser of two evils.

Bot­tom line, tog­gling con­tent as a basic way of inter­ac­tion is really sim­ple and pos­si­bly the eas­i­est way to make read­ers inter­act with salesletters.

But granted, not every­one is a techie. I’m cer­tainly not. So to help you, here’s some cod­ing and a bit of a tuto­r­ial to help you. (And what fol­lows is just a basic exam­ple I copied from some tuto­ri­als avail­able online. There are tons of these out there.)

If you have a basic under­stand­ing of HTML, this will be rel­a­tively easy. First, add a bit of javascript code in the page’s HTML <head> tags (just before the clos­ing </​head> tag):

<script language="javascript">
function showHide(element) {
if (document.getElementById) {
// W3C standard
var style2 = document.getElementById(element).style;
style2.display = style2.display ? "" : "block";
}
else if (document.all) {
// old MSIE versions
var style2 = document.all[element].style;
style2.display = style2.display ? "" : "block";
}
else if (document.layers) {
// Netscape 4
var style2 = document.layers[element].style;
style2.display = style2.display ? "" : "block";
}
}
</script>

Then, you add the style inside the page’s head tags or in your CSS stylesheet, if you’re using an exter­nal CSS file to man­age all your styles, which hides the content:

div#hiddenContent {display: none;}

If you’re adding it directly to the web page, place this in between your <style> tags, inside the <head> tags as well. So the whole thing would look some­thing like this:

<script language="javascript">
function showHide(element) {
if (document.getElementById) {
// W3C standard
var style2 = document.getElementById(element).style;
style2.display = style2.display ? "" : "block";
}
else if (document.all) {
// old MSIE versions
var style2 = document.all[element].style;
style2.display = style2.display ? "" : "block";
}
else if (document.layers) {
// Netscape 4
var style2 = document.layers[element].style;
style2.display = style2.display ? "" : "block";
}
}
</script>
<style>
<!--
div#hiddenContent {display: none;}
-->
</style>

That’s the hard­est part.

Next, what you sim­ply do is wrap the con­tent you want to hide around “div” tags, and call it a name. A name is labeled “ID.” In this case, I called it “hid­den­Con­tent” so that it matches the style in your stylesheet, above. For example:

<div id="hiddenContent">
Blah, blah, blah.
</div>

Next, you need to deter­mine which link will tog­gle the con­tent. You can add this to any link on the page, like a ques­tion for instance, or to a link that specif­i­cally asks for the con­tent, such as “click here to view the testimonials.”

All you do is add a javascript call to the link that tells the page to “unhide” the con­tent placed between the “div” tags ear­lier. For instance, the link should look like this:

<a href="javascript:showHide('hiddenContent');">
Click here
</a>

And that’s it! You’re done.

Now, what if the con­tent is not directly requested in the link, and the con­tent sim­ply “opens up” when another link, for any­thing else, is clicked? Sim­ple. All you need to do is add the “onClick” string to the link of your choice.

Let’s say there’s a link to a sec­tion of the same page called “what­ever.” These care called “book­marks.” When some­one clicks on that link and jumps to that book­mark, the hid­den con­tent also opens up. Here’s an example:

<a onclick="javascript:showHide('hiddenContent');" href="#whatever">
Whatever
</a>

You can add this to any link, includ­ing graph­ics, pages, or sections.

Again, this is not lim­ited to links. You can use it with dif­fer­ent mouse actions, such as “onSub­mit,” “onMouseOver,” “OnScroll,” and oth­ers. There’s a javascript call for pretty much every mouse action a reader takes.

Plus, hid­ing and unhid­ing con­tent are not the only things you can do — you can make con­tent fly in, change (that is, unhide some con­tent while hid­ing oth­ers), appear on other pages (usu­ally using cook­ies), and much, much more.

Nev­er­the­less, here’s a great exam­ple of it in action.

An opt-​​in land­ing page I worked on for Brian Keith Voiles offers a free report. The land­ing page was already quite wordy, and ini­tially we had a link to the table of con­tents, which opened up in a sep­a­rate window.

So rather than push peo­ple away, we decided to tog­gle the con­tent on the same page. Sim­ply scoll down about halfway, below where the tes­ti­mo­ni­als are, and click on the link to the table of con­tents. When you do, it opens up on the same page.

Neat, huh?

Now, what if you have mul­ti­ple areas you wish to hide/​unhide, indi­vid­u­ally, on the same page? You don’t want all the hid­den pieces of con­tent to unhide simultaneously.

There is a way to do this.

If you are adding more than one area, then each sec­tion you wish to hide must have its own “div” with its own unique name (or ID), and its own cor­re­spond­ing link, so that the scripts can do its magic to that spe­cific block of con­tent and not the others.

In the link that will expand or con­tract the spe­cific con­tent, sim­ply pass each ID indi­vid­u­ally. That way, by click­ing on a spe­cific link, it opens its related con­tent. For example:

<a href="javascript:showHide('hiddenContent_1')">
Click here
</a>
<div id="hiddenContent_1">
Piece of content #1
</div>

And then for the other…

<a href="javascript:showHide('hiddenContent_2')">
Click here
</a>
<div id="hiddenContent_2">
Piece of content #2
</div>

And don’t for­get to add the “div” style and its appro­pri­ate ID in the stylesheet for each sec­tion (you can have as many as you wish). For example:

<style>
<!--
div#hiddenContent_1 {display: none;}
div#hiddenContent_2 {display: none;}
-->
</style>

That’s all there is to it.

But, what if you want all the tog­gled con­tent to hide or unhide with a sin­gle ges­ture, such as click­ing a sin­gle link? In other words, you click on one link, and it opens up sev­eral if not all the pieces of con­tent simultaneously?

Sim­ply, name your “div” sec­tions as above. Then add this Javascript func­tion in the “head” tags, which loops through all of the “div” tags on the same page, and calls the exist­ing “showHide” func­tion on each one that it finds:

function showHideAll() {
var cCommonDivName = "hiddenContent_";
var arrDivs = document.getElementsByTagName('div');
for(i = 0 ; i < arrDivs.length ; i++) {
if (arrDivs[ i ].id.match(cCommonDivName)) {
showHide(arrDivs[ i ].id);
}
}
}

So your HTML, in the “head” tags, would look some­thing like this:

<script language="javascript">
function showHide(element) {
if (document.getElementById) {
// W3C standard
var style2 = document.getElementById(element).style;
style2.display = style2.display ? "" : "block";
}
else if (document.all) {
// old MSIE versions
var style2 = document.all[element].style;
style2.display = style2.display ? "" : "block";
}
else if (document.layers) {
// Netscape 4
var style2 = document.layers[element].style;
style2.display = style2.display ? "" : "block";
}
}
function showHideAll() {
var cCommonDivName = "hiddenContent_";
var arrDivs = document.getElementsByTagName('div');
for(i = 0 ; i < arrDivs.length ; i++) {
if (arrDivs[ i ].id.match(cCommonDivName)) {
showHide(arrDivs[ i ].id);
}
}
}
</script>
<style>
<!--
div#hiddenContent_1 {display: none;}
div#hiddenContent_2 {display: none;}
div#hiddenContent_3 {display: none;}
-->
</style>
</script>

And you can call the func­tion like so:

<a href="javascript:showHideAll()">
Toggle everything
</a>

And don’t for­get, you can also switch them, such as hav­ing the con­tent vis­i­ble and hide it once a user clicks on the link. Sim­ply change the word “block” to “none” in the javascript, and “none” to “block” in the CSS’ “div” style.

Want to see mul­ti­ple links in action?

My friend Frank Deardruff, the cre­ator of the Ask​Data​base​.com soft­ware (a ser­vice I highly rec­om­mend, too), uses this script for his “fre­quently asked ques­tions” page.

Frank also uses it for lengthy tes­ti­mo­ni­als on his Web­mas­ter Crash Course let­ter. Scroll about halfway down to the tes­ti­mo­ni­als sec­tion, and go to the last one in the bunch.

It’s from another friend of mine, pro­fes­sional pho­tog­ra­pher Mary Maz­zullo, the lady with the cam­era in her hands. Click the “read more” link at the end of her testimonial.

(Mary, by the way, is not only the pho­tog­ra­pher we chose for our wed­ding, but also the one who took those new pic­tures of me. One of them is at the top of this website!)

Another great copy­writer and friend of mine, Ray Edwards, uses it on a let­ter he wrote for Jack Can­field. He was able to fit the FAQs into the sales let­ter but still keep the let­ter feel­ing “lighter” on copy. (Just click in the “FAQs” link at the top.)

Aside from tog­gling tes­ti­mo­ni­als, FAQs, and wordy blocks of con­tent, you can use this tech­nique in var­i­ous ways. For exam­ple, you can do it with videos. If the video starts play­ing auto­mat­i­cally, then the video will only start play­ing as the video opens up.

You will likely see more and more of this as time goes by. So keep your eyes peeled!

About the Author

Last 5 Posts By Michel Fortin

Other Related Posts


Share
Category: Articles
You can follow any responses to this entry through the RSS 2.0 feed. Responses are currently closed, but you can trackback from your own site. You may reprint this article in your own publication or website, provided that you leave the content, the links, and the "about the author" section at the end intact.
Secrets From Masters of Copywriting

Secrets From Masters of Copywriting

New! Advice from top moneymakers Yanik Silver, Joe Sugerman, Dan Kennedy, Clayton Makepeace, John Carlton, Joe Vitale, and 38 others! Click for more »