我有一个必须跨越多个框架的弹出窗口,所以我使用 window.createPopup 来让它工作。(IE6、7 和 8。)
下面是我用来创建弹出窗口的函数:
function ShowMyPopup() {
notificationPopup = window.createPopup();
$(notificationPopup.document.body).load("/notification.html");
notificationPopup.show($(sourceFrame.document.body).width() - 510, $(sourceFrame.document.body).height() - (510 - $(sourceFrame.document.body).height()), 500, 500, sourceFrame.document.body);
}
这似乎工作得很好。我应该看到弹出窗口。问题是,无论我做什么,我似乎都无法访问生成的弹出窗口中的任何 DOM 元素。我尝试了各种 jQuery 方法以及直接的 getElementById,并且都返回 NULL。以下是notification.html的内容:
<html>
<head>
<script type="text/javascript">
$(document).ready(function () {
alert($(document).html());
alert($("#divNotification").html());
alert(document.getElementById("divNotification"));
});
</script>
</head>
<body>
<div id="divNotification" onclick="$(this).toggle();">
<h3>Some Notification!</h3>
Testing 1234...
</div>
</body>
</html>
我看到三个警报,所以我知道 jQuery 正在工作,但所有三个警报都只显示“NULL”。如果我单击生成的 div,onClick 会触发,但会出现“预期对象”错误。
这里发生了什么?