2013-03-13 55 views
-1

現在我試圖用JavaScript打開一個新的彈出式窗口,但我只想單擊一個彈出式窗口,如果點擊幾次鏈接,但如果關閉窗口我希望它打開以再次彈出。打開彈出式窗口的單個實例IE

到目前爲止,我已經THW如下:

的.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測試它打開每次點擊都有一個新窗口。

我想知道是否有辦法解決這個問題。

+0

-1用於重新編輯問題並使兩個答案無效。 – 2013-03-13 16:09:19

回答

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

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

請注意,這不是一個徹底的解決方案,並且不考慮彈出窗口被阻塞的情況。

+0

我的不好,我沒有指定我想要能夠重新打開彈出如果我關閉彈出窗口並再次單擊鏈接。我剛剛編輯了這個問題。謝謝! – Tomarto 2013-03-13 16:07:49

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?

+0

我的不好,我沒有指定我想要能夠重新打開彈出如果我關閉彈出窗口並再次單擊鏈接。我剛剛編輯了這個問題。謝謝! – Tomarto 2013-03-13 16:07:22

+0

沒問題,我更新它以反映這種變化。 – GJK 2013-03-13 16:17:54

0

@Tomarto

試試這個代碼,

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

    popupWind.focus(); 
    return popupWind; 
} 
0

在HTML頁面只能打開一個彈出式窗口的情況下,使用窗口的 「windowName」 參數。打開方法。 例如:每當用戶點擊包含window.open代碼的鏈接時,window.open(「http://www.mywebsite.com」)將會打開一個新窗口。要在同一個窗口中打開,使用window.open(「http://www.mywebsite.com」,「contacts」),因此在鏈接上單擊任何「N」次點擊將只打開一個窗口實例。