Internet Explorer 5.0, Part III: History Persistence - Doc JavaScript | WebReference

Internet Explorer 5.0, Part III: History Persistence - Doc JavaScript


Historty Persistence

Internet Explorer 5.0 introduces saveHistory, a Behavior that enables persistent Back and Forward moves. This Behavior enables you to go Back a page and then Forward and still find your page as you have left it in the first place. Let's practice it a little so you understand the power behind it.

Let's try to go Back a page. After you take 3-4 turns on the Connect Three game, click the Back icon. Make sure you have some "o" and "x" pieces positioned on the board. Internet Explorer will go back a page. Now try going forward, by clicking the Forward icon. You will find your Connect Three game in the exact same shape you have left it. You have just witnessed the power of the saveHistory Behavior. We explain next how to implement it.

There are a few changes you have to implement in your Web page to be able to use the persistence Bahaviors. First, you have to add the following META tag:

<META NAME="save" CONTENT="history">

Secondly, you need to define the saveHistory Behavior as a built-in one:

<STYLE>  
  .saveHistory{behavior:url(#_IE_);}
</STYLE>

The rest of the changes are identical to those made for Favorites persistence, as described on the previous page. We want to persist the whole game board by persisting the BODY tag. In order to enable a persistent element, you need to specify its Behavior via the CLASS attribute, assign an ID to the element, and define its onload() and onsave() event handlers. In our case of the BODY tag, the HTML statement looks like this:

<BODY CLASS="saveHistory" ID="game"
 onload="handleBodyLoad()" onsave="handleBodySave()">

The onsave() and the onload() event handlers are described on the previous page.

As explained on the previous page, it's important to understand that we could not have persisted individual IMG element's gif file. The reason is that if we assign the gif file upon loading of the IMG element (as opposed to the BODY element), a load event would be triggered, causing the script to go into an infinite loop.

http://www.internet.com


Created: August 28, 1998
Revised: August 28, 1998

URL: http://www.webreference.com/js/column24/history