为什么下面的代码在safari中工作但在IE6中不起作用?

时间:2010-10-22 09:29:50

标签: javascript

为什么下面的代码在safari中有效但在IE6中没有?它会打开窗口,但不会触发警报。

    <script>
        function fnOpenChild()
        {
            var openChild = window.open('child.htm');
            openChild.onload = function() { 
            alert("im the child window");
        };
    }

    </script>

<input type="button" onClick="fnOpenChild()">

谢谢

5 个答案:

答案 0 :(得分:1)

试试吧! 将onload事件移动到child.htm

答案 1 :(得分:0)

我知道这实际上不是一个答案,但我真的建议你不要再使用IE6,只需使用IE8 +。

然后,添加代码,警告用户他/她正在使用过时的Web浏览器。您可以使用navigator.appVersion

检测浏览器版本

如果您想知道为什么您或其他任何人不应再使用它:

http://www.google.nl/#hl=nl&source=hp&biw=1024&bih=837&q=Why+IE6+must+die

编辑:Aah,我猜你修好了,但我仍然建议你看看上面的链接。 :)

答案 2 :(得分:0)

IE6有一些......相当有趣的问题,需要一些解决方法。你试过googleing,“IE6 window onload”吗? http://www.webdeveloper.com/forum/showthread.php?t=183578似乎有一个有效的建议。

答案 3 :(得分:0)

尝试同时应用onreadystatechange。 IE6在onload上存在一些问题。

openChild.onload = openChild.onreadystatechange = function() { ...

答案 4 :(得分:0)

可能有两种可能的解决方法:

<强> 1。移动onload脚本或子窗口

**child.htm**
<html>
<script type="text/javascript">
    window.onload = function(){
        alert('im the child window');
    }
</script>
<body>
 ....
</body>
</html>

<强> 2。在开启窗口中声明一个函数,并在子项的onload上调用它

**parent.htm**
<script type="text/javascript">
   function forChildWindow(params){
        alert('im the child window' + params);
   }
</script>

**child.htm**
<html>
<script type="text/javascript">
    window.onload = function(){
        var load = window.opener.forChildWindow;
            var someparams = " param1";
        if(load) { 
            load(someparams);
            }
    }
</script>
<body>
 ....
</body>
</html>