How to dynamically change the properties of page controls (HTML form elements) by using JavaScript.
You can run this technique code from:
| |
See the chapter on advanced page topics in the Programmer's Guide |

The live example for this technique is a plain HTML file that shows how you can manipulate HTML form elements with some basic JavaScript. To do the same thing in SilverStream, you just need a slight variation, as described in the next section.

In the Page Designer, you code the following in the Raw HTML window:
<SCRIPT>
// Standard Browser Check
browserCheck = ((navigator.appName == "Microsoft Internet Explorer")
|| (navigator.appName == "Netscape"))
&& (parseInt(navigator.appVersion) >= 4);
</SCRIPT>
Then, you code the following in the JavaScript window:
// The changeArea method takes two parameters, a
// reference to the actual image object that you want
// to work with and a description of that image.
method changeArea(whichImg,desc) {
// If they don't have a compatible browser, do not
// try to do a hover.
if (!browserCheck)
return;
// Set the image's source to a variable in the function
// so you can deal with it separately.
imgSrc = whichImg.src;
// Since you are naming images in the format:
// image1.gif
// image2.gif
// all you need to do is find out if the current image
// is a 1 or a 2 and switch it accordingly.
// ** Note: Your naming convention does not have
// to be the same 1 or 2 scheme and it does not
// only work with GIF type images.
// So here, you check to see if there is a '1' in
// the image source.
if (imgSrc.indexOf("1.gif") == -1) {
// There is no '1' so replace the '2' in
// the source with a '1'
imgSrc = imgSrc.replace(2 + ".gif",1 + ".gif");
}
else {
// There is a '1' in the source so replace
// it with a '2'
imgSrc = imgSrc.replace(1 + ".gif",2 + ".gif");
// Only want to change the value of the text area when
// you are dealing with a onMouseOver event which is
// why this line is in the else block.
this.desc.value = desc;
}
// Set the source of the image to the new source
whichImg.src = imgSrc;
}
method handle_img1_onMouseOver()
{
Page.changeArea(this.img1,'SilverStream Icon');
}
method handle_img1_onMouseOut()
{
Page.changeArea(this.img1,'');
}
method handle_img2_onMouseOut()
{
Page.changeArea(this.img2,'');
}
method handle_img2_onMouseOver()
{
Page.changeArea(this.img2,'Tools Icon');
}