为什么下面的代码在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()">
谢谢
答案 0 :(得分:1)
答案 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>