Javascript Window.open问题IE7 / IE8

时间:2009-12-02 10:12:35

标签: javascript jquery internet-explorer-7 window.open

我创建了一个简单的JQuery脚本,它循环遍历一个url数组并打开多个窗口。

这在大多数平台上运行良好。

但是,在客户端机器上的IE7和IE8中,浏览器只打开一个窗口。没有javascript错误。

我的笔记本电脑上有相同的版本,工作正常。

请有人了解潜在因素吗?

受影响的机器:XP SP3 - IE 7 Final,Windows 7 IE 8

非常感谢任何帮助。

干杯 保罗

4 个答案:

答案 0 :(得分:3)

可能启用了弹出式窗口拦截器

答案 1 :(得分:2)

如果我没记错的话,IE7 +中的弹出窗口拦截器只允许在javascript中每个用户交互一个新窗口,然后阻止它们。

答案 2 :(得分:1)

不确定但是您是否将窗口的每个新引用分配给变量?这会产生问题,但是如果你输入一个变量,它每次都会获得新的引用,并且jquery循环中的内容可以正常工作。

答案 3 :(得分:1)

抱歉,我无法关注您的单行无格式代码。但以下版本适用于我可用的所有浏览器,包括Firefox 3.5,Opera 10,Chrome 3和Internet Explorer 6,7和8:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="es">
<head><title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript"><!--
function openLinks(){
    var linkList = [
        "http://www.google.es",
        "http://www.yahoo.com",
        "http://www.bing.com",
        "http://stackoverflow.com",
        "http://serverfault.com/"
    ];

    $(linkList).each(function(){
        window.open(this);
    });
}
//--></script>
</head>
<body>

<input type="button" onclick="openLinks()" value="Open lots of links">

</body>
</html>

与弹出窗口相关的典型错误包括:

  • 为Windows分配ID并重复使用相同的ID - &gt;分配不同的ID(如果不需要则不分配)
  • 打开未经请求的弹出窗口 - &gt;让用户触发操作