JavaScript - IE8 window.onload()在新打开的窗口中不起作用

时间:2011-03-24 14:37:00

标签: javascript internet-explorer-8 window.open

这篇文章与window.onload() is not firing with IE 8 in first shot有关。

在主页面(窗口)中,我打开一个新窗口:

... window.open('foobar.php',<...>); ...

新窗口正确打开但window.onload()部分(位于'foobar.php')中的代码未执行:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
   <title>foobar</title>
   <script type="text/javascript">
   //<![CDATA[
   window.onload = function ()
   {
      alert('foobar');
   }
   //]]>
   </script>
</head>
<body>
</body>
</html>

Prototype的“document.observe”('dom:loaded',function()“和body-Tag中的”onload“属性替换”window.onload“也不起作用。如果我重新加载内容新打开的窗口或再次打开它然后代码工作正常。如果我从主窗口运行代码,那么代码也正常工作。这似乎是一个缓存问题,但我不确定。< / p>

我的IE版本是8.0.6001.18702。我推迟了所有的附加组件。

非常感谢提前

1 个答案:

答案 0 :(得分:1)

由于脚本位于ALREADY LOADED的页面中,因此很久以前就发生了onload事件。

加载窗口和DOM准备好之间存在差异。