打开一个弹出窗口IE的单个实例

时间:2013-03-13 15:57:41

标签: javascript internet-explorer popup window

现在我正在尝试使用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 个答案:

答案 0 :(得分:0)

function open() {
    document.getElementById('link').onclick = '';
    // open popup
}

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

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

答案 1 :(得分: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;
    }
}

您可以阅读此内容以获取嵌套回调说明。

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

答案 2 :(得分:0)

@Tomarto

试试这段代码,

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

   popupWind.focus(); 
   return popupWind;
 }

答案 3 :(得分:0)

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