-1

现在我正在尝试使用 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 测试它时,每次点击都会打开一个新窗口。

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

4

4 回答 4

0

@番茄

试试这个代码,

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

   popupWind.focus(); 
   return popupWind;
 }
于 2013-07-31T13:23:46.023 回答
0
function open() {
    document.getElementById('link').onclick = '';
    // open popup
}

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

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

于 2013-03-13T15:59:52.167 回答
0

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

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;
    }
}

您可以阅读此内容以了解嵌套回调说明。

为什么 window.open(...).onunload = function () { ... } 不能按我的预期工作?

于 2013-03-13T15:59:53.927 回答
0

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

于 2016-08-30T01:43:15.573 回答