The browser-independent W3C Standard's way to set and get an element visibility is via the style object's visibility property. The visibility property may have three possible values:
"")
"hidden"
"visible"
An element is visible when its style object's visibility property is either empty ("") or "visible". It is invisible when the property is "hidden".
When you initially place an element, its default visibility is an empty string (""). One would expect that setting the visibility property in the STYLE attribute, would switch the default value from "" to "visible":
<FORM>
<INPUT ID="button1" STYLE="position:relative; left:0; visibility:'visible';"
TYPE="button" VALUE="Show Visibility of Other Button" onclick="handleClick()">
<INPUT ID="button2" STYLE="position:relative; left:150; visibility:'visible';"
TYPE="button" VALUE="Show My Visibility" onclick="handleClick()">
</FORM>
<SCRIPT LANGUAGE="JavaScript">
<!--
function handleClick() {
alert('visibility = "' + document.getElementById('button2').style.visibility + '"');
}
// -->
</SCRIPT>
Click the following buttons to verify that indeed the default visibility value is "visible" and not "". You'll find that this is the case in Internet Explorer only. Netscape 6, on the other hand, returns an empty string (""), so you cannot change the default visibility value in Netscape 6:
This is the reason why a safer way to check whether an element is visible or not, is by testing if it is not "hidden":
if (visibility != "hidden")...
You can also set visibility to "visible" in a JavaScript script. Needless to say, you have to do it before the first query of visibility.
People who read this tip also read these tips:
Look for similar tips by subject:
|