【问题标题】:Open a single instance of popup window IE打开单个IE弹窗实例
【发布时间】:2013-03-13 15:57:40
【问题描述】:

现在我正在尝试使用 JavaScript 打开一个新的弹出窗口,但如果您单击多次链接,我只想打开一个弹出窗口,但如果我关闭该窗口,我希望它再次打开以弹出.

到目前为止,我有以下内容:

.js

function open() {
    var popup = window.open("http://www.google.com/", "URL","left=0,top=0,width=800,height=600,status=no,resizable=no,scrollbars=no,toolbar=no,menubar=no");
}

.html

<a onclick="javascript:open()">Click me</a>

使用 Chrome 和 FF 效果很好,但是当我使用 IE 对其进行测试时,每次点击都会打开一个新窗口。

我想知道有没有办法解决这个问题。

【问题讨论】:

  • -1 用于重新编辑问题并使两个答案无效。

标签: javascript internet-explorer popup window


【解决方案1】:
function open() {
    document.getElementById('link').onclick = '';
    // open popup
}

<a id="link" onclick="javascript:open()">Click me</a>

注意,这不是一个彻底的解决方案,并且不考虑弹出窗口被阻止的情况。

【讨论】:

  • 我的错,我没有指定如果我关闭弹出窗口并再次单击链接,我希望能够重新打开弹出窗口。我刚刚编辑了这个问题。谢谢!
【解决方案2】:

使用变量检查之前是否打开过。

var opened = false;
function open() {
    if (!opened) {
        var popup = window.open("http://www.google.com/", "URL","left=0,top=0,width=800,height=600,status=no,resizable=no,scrollbars=no,toolbar=no,menubar=no");
        popup.onload = function() {
            popup.onunload = function() {
                opened = false;
            };
        };
        opened = true;
    }
}

你可以阅读这里的嵌套回调解释。

Why does window.open(...).onunload = function () { ... } not work as I expect?

【讨论】:

  • 我的错,我没有指定如果我关闭弹出窗口并再次单击链接,我希望能够重新打开弹出窗口。我刚刚编辑了这个问题。谢谢!
【解决方案3】:

@番茄

试试这个代码,

function Redirect (url, name, args)
 {
   if (typeof (popupWind) != "object" || popupWind.closed) 
   {
       popupWind= window.open(url, name, args); 
   }

   popupWind.focus(); 
   return popupWind;
 }

【讨论】:

    【解决方案4】:

    要在 HTML 页面中仅打开一个弹出窗口实例,请使用 window.open 方法的“windowName”参数。 例如: window.open("http://www.mywebsite.com") 将在用户每次单击包含 window.open 代码的链接时打开一个新窗口。要在同一个窗口中打开,请使用 window.open("http://www.mywebsite.com","contacts") ,因此对于任何“N”次点击链接只会打开一个窗口实例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多