【问题标题】:window.open doesn't work properlywindow.open 无法正常工作
【发布时间】:2013-09-24 20:49:40
【问题描述】:

以下在 Firefox 中完美运行:

我在 javascript 中有以下内容:

function newPopup(url) {
    popupWindow = window.open(url, 'popUpWindow', 'height=700,width=800,left=10,top=10');
}

我的网页上有 2 个锚链接:

    <a href="JavaScript:newPopup('http://blablabla/ReferenceManua.pdf#page=31');
        Reference Manual 31</a>
    <br />
    <a href="JavaScript:newPopup('http://blablablaReferenceManua.pdf#page=61');">
        Reference Manual 61</a>

当点击第一个链接时,会打开一个新窗口,加载pdf文件,url表明它必须跳转到第31页,所以它跳转到第31页 --> OK

然后点击第二个链接时,使用相同的窗口,url表明它必须跳转到第61页,所以它跳转到第61页--> OK

但是在 chrome 中... 单击第一个链接时,会打开一个新窗口,加载 pdf 文件,url 表明它必须跳转到第 31 页,所以它跳转到第 31 页 --> 确定

但是当点击第二个链接时,使用的是相同的窗口,url 表明它必须跳转到第 61 页但它仍然停留在第 31 页 --> ??

在 IE 中更糟糕的是: 每次单击任一链接时都会创建一个新窗口。不会跳转到请求的页面

如何解决?

谢谢

【问题讨论】:

  • 第二个链接中缺少/ 是故意的吗?为什么要在弹出窗口中显示?我讨厌无法按 ctrl-click、鼠标中键单击或右键单击>在新窗口中打开的链接,因为有人认为只创建 JavaScript 链接会很酷。它极大地损害了可用性。
  • 你也错过了第一个锚点中的“关闭”

标签: javascript html google-chrome firefox pdf


【解决方案1】:

我相信强制关闭窗口(如果它是打开的)应该可以解决问题。将您的 JS 代码更改为:

var popupWindow;

function newPopup(url) {
    if (popupWindow) popupWindow.close();

    popupWindow = window.open(url, 'popUpWindow', 'height=700,width=800,left=10,top=10');
}

【讨论】:

    【解决方案2】:

    因为您使用的是相同的窗口名称,所以它在同一个窗口中打开 如果你想要一个单独的,那么你可以试试这个Demo

    var randomnumber = Math.floor((Math.random()*100)+1); 
    window.open('yoururl',"_blank",'PopUp'+randomnumber+',scrollbars=1,menubar=0,resizable=1,width=850,height=500');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-01
      • 2012-07-11
      相关资源
      最近更新 更多