【问题标题】:Javascript Window.open Issue IE7 / IE8Javascript Window.open 问题 IE7 / IE8
【发布时间】:2009-12-02 10:12:35
【问题描述】:

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

这在大多数平台上都可以正常工作。

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

我的笔记本电脑上有相同的版本,并且运行良好。

请问有人能说明潜在因素吗?

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

任何帮助将不胜感激。

干杯 保罗

【问题讨论】:

  • 弹出窗口拦截器?内置或其他方式
  • 看不到代码很难提供认真的建议
  • 抱歉,这里是代码 sn-p: $("form#linkSearch").submit( function(){ term = ($('#linkTerm').val()); for (var i in $hash) { index = i.replace(/link/ig, ''); if (term) { url = $linksHash[index].replace(/XXX/g, term); } else { url = $('#'+i).attr('href'); } window.open(url, i+term.replace(/[^a-zA-Z0-9]+/g,'_')) ; } 返回假; });用户输入一个搜索词,我清除搜索词去除非字母数字字符并将其用作窗口名称。
  • 粘贴代码格式问题。这是核心行:window.open(url, i+term.replace(/[^a-zA-Z0-9]+/g,'_'));

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      抱歉,我无法按照您的单行无格式代码进行操作。但以下内容适用于我可用的所有浏览器,包括 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>
      

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

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

        • 我已将代码更新如下:myWin = window.open(url, i+term.replace(/[^a-zA-Z0-9]+/g,'_')) ;
        • 等待客户回复,您是这个意思吗?
        猜你喜欢
        • 1970-01-01
        • 2012-07-11
        • 2011-09-16
        • 1970-01-01
        • 1970-01-01
        • 2012-11-23
        • 2012-12-05
        • 2011-07-27
        • 1970-01-01
        相关资源
        最近更新 更多