[Javascript] Using the popup object in IE
Matt Barton
javascript at mattbarton.org
Mon Jan 19 11:10:16 CST 2004
Hi,
This isn't purely a javascript problem this, more like dHTML as it
contains a deal of css. Also, to make matters more evil, I'm only
concerned with finding a solution for IE5.5+ (not my descision - it was
made before I joined the company!).
What I'm trying to do is create a popup dHTML menu using the popup object.
I have a popup window appearing and it's appearance is about right (it's
content is defined by setting its innerHTML property). On the window is a
set of nested tables that describe a menu. The problem I am seeing is
that I cannot seem to trigger calls to functions from the event bound to
the <td> objects. For instance this will trigger an alert box when you
click the correct cell:
<table>
<tr>
<td onClick="alert ('Hello, World!')">Click me.</td>
</tr>
</table>
However - this example will _not_ trigger an alert box....
<script language="javascript">
function fShout (sMsg) {
alert (sMsg);
}
</script>
<table>
<tr>
<td onClick="fShout ('Hello, World!')">Click me.</td>
</tr>
</table>
Strange, no? I'm thinking that I've done something really basic and dumb
wrong, and I've been looking at it for so long that I just can't see it.
Can anyone help?
Thanks,
Matt
Oh - in case you want to see how I'm creating and displaying the popup
object, this is an example of code:
<IE:Download ID=dwn STYLE="behavior:url(#default#download)" />
<SCRIPT>
function onDone(src) {
//oPopup.document.write(src);
oPopup.document.body.innerHTML = src;
}
function showPopup(iX, iY) {
oPopup.show(iX, iY, 300, 500, document.body);
}
var oPopup = window.createPopup();
//The callback function pointer takes a single parameter. When a
file downloads successfully, the file contents are passed as the parameter
and are accessible in script.
//startDownload is a member of the download default behavior.
dwn.startDownload("popup_source3.html",onDone);
</SCRIPT>
<img src="menu.gif" onMouseOver="showPopup(event.clientX,
event.clientY);" style="cursor: hand">
----
Hovering over the image causes the popup to display. The observant
amongst you will notice that most of the above code was, ahem, sourced
(robbed) from the M$ support site. The example snippets of code that I
use to explain the problem would be included in the popup_source3.html
file which the browser downloads.
More information about the Javascript
mailing list