Knowledge Base Articles » KB100216: Adding ToolTips to Your HTML Pages.
If you place and hold your mouse pointer
over the title of this article you will see a small window appear next to
the mouse containing an explanation of the fact that the text your mouse
is over is the title of the article. This feature is known as a ToolTip
and is commonly used to display advisory information as in the above example.
This article demonstrates a cross-browser implementation of ToolTips.
Internet Explorer has natively supported ToolTips since version 4 via the
title attribute which applies to almost all tags, this is also supported in Netscape 7.
The
title attribute is
part of the W3C Document Object Model (HTML) Level 1 Recommendation. However,
older versions of Netscape Navigator do not support the title tag and must use the
code below.
To simulate the same behavior in Netscape Navigator, a hidden layer is utilized.
This layer is dynamically moved to the location of the mouse and then made
visible whenever an appropriate mouseover event occurs. When the corresponding
mouseout event occurs, the layer is once again hidden. As of version 4.7,
Netscape Navigator only supports the
onmouseover and
onmouseout events with
the
a, area, and
layer tags. Therefore, this cross-browser implementation
of ToolTips can only be applied to the
a and
area tags (since Internet Explorer
does not support layers).
The ToolTip is implemented using two main JavaScript functions, showtip()
and hidetip(), which show and hide the ToolTip respectively. These functions
are triggered by the
onmouseover and
onmouseout events of the tag to which
the ToolTip is being added. A single hidden
div element is also utilized.
The
div can be declared anywhere in the body of your HTML document, and
is used in the Netscape browser to display the ToolTip. The two required
JavaScript functions and the code for declaring the hidden
div element are
shown below:
<head>
<script>
function showtip(current,e,text)
{
if (document.all)
{
thetitle=text.split('<br>')
if (thetitle.length > 1)
{
thetitles=""
for (i=0;
i<thetitle.length-1; i++)
thetitles += thetitle[i] + "\r\n"
current.title = thetitles
}
else current.title = text
}
else if (document.layers)
{
document.tooltip.document.write(
'<layer bgColor="#FFFFE7" style="border:1px ' +
'solid black; font-size:12px;color:#000000;">' + text + '</layer>')
document.tooltip.document.close()
document.tooltip.left=e.pageX+5
document.tooltip.top=e.pageY+5
document.tooltip.visibility="show"
}
}
function hidetip()
{
if (document.layers)
document.tooltip.visibility="hidden"
}
</script>
</head>
<body>
<div id=tooltip style="position:absolute;visibility:hidden"></div>
In the above script, the "if (document.all)" and "if (document.layers)"
tests are used to perform browser detection - only Internet Explorer implements
the document.all collection, whereas only Netscape implements the document.layers
collection. Having added the
div and the two JavaScript functions showtip()
and hidetip() to your page, you are now ready to begin adding ToolTips.
To add a ToolTip to an
a or
area tag, you simply need to add
onmouseover
and
onmouseout event-handlers to the tag to call the showtip() and hidetip()
functions respectively. When you call showtip() you must pass it three arguments
- a reference to the object for which the ToolTip is being displayed, the
event object representing the mouseover operation, and the text to be displayed
in the ToolTip. To display a multi-line ToolTip, separate the lines of text
with "<br>" tags. The syntax for setting up a multi-line ToolTip on
an A tag is illustrated below:
<A href="#" onmouseover="showtip(this,event,'This
is the title<br>of the article.')" onmouseout="hidetip()">A100216: Adding
ToolTips to your HTML pages.</a>
When adding your own ToolTips, set the href and ToolTip text appropriately,
but the remainder of the syntax above should not be altered.