2015-10-04 95 views
0

我正在打開一個新窗口,單擊超鏈接。Firefox和IE中的Window.open問題

問題: 在最小化窗口之後,如果我點擊超級鏈接,同樣的窗口應該被打開(在鉻最小化窗口將打開)。但是這不是在Firefox和IE中發生的。任何人都可以請幫忙。

<html> 
<head></head> 
<body> 
<p><a href="http://www.w3schools.com/html/" onclick="window.open('http://www.w3schools.com/html/', 'newwindow', 'width=1500, height=900'); return false;">Visit our HTML tutorial</a></p> 
</body> 
</html>      
+0

在這裏測試,它對我和火狐和Internet Explorer的工作。 – Buzinas

回答

0

window.open允許你指定一個唯一的標識符,以彈出式窗口;這允許您始終在同一個彈出窗口中打開許多鏈接。 如果您在不同的鏈接上使用不同的標識符,它應該打開多個彈出窗口。

<p> 
    <a href="http://www.w3schools.com/html/" onclick="window.open('http://www.w3schools.com/html/', 'newwindow', 'UNIQUEID', 'width=1500, height=900'); return false;">Visit our HTML tutorial</a> 
</p> 

<p> 
    <a href="http://www.w3schools.com/html/" onclick="window.open('http://www.w3schools.com/html/', 'newwindow', 'ANOTHER_UNIQUEID', 'width=1500, height=900'); return false;">Visit our HTML tutorial</a> 
</p> 
0

如果使用strWindowFeatures參數和沒有大小特徵被定義,則新的窗口尺寸將是相同的最近呈現的窗口的尺寸。

你可能要檢查這個環節 window.open web api for mozilla

0

唯一ID的想法在參數名單根本不作爲另一個答案建議的工作。

你需要一個功能來做你所需要的IE和FF。訣竅是獲得一個函數,看它是否曾經打開過一個窗口,如果它已經做了什麼也不做。

<script> 

      var opened = false;   

      function openWindow(){   

       if (!opened) { 

        w = window.open('', 'test', 'width=1500, height=900');      
        w.location = "http://www.google.com";; 

        w.onload = function() { 
         w.onunload = function() { 
          opened = false; 
         }; 
        }; 
        opened = true; 
       } 

      } 

</script> 

我使用的是opened全局變量來跟蹤這個。我們設置新創建的窗口,在關閉時將此變量設置爲false。現在函數可以決定它是否真的應該打開一個新窗口。請注意以下幾點:

  1. 我們使用新窗口的onLoad函數來設置onUnload。因爲IE在加載頁面後似乎取代了在這裏設置的事件處理程序。

  2. 您可以看到我們首先打開一個空白窗口,然後設置它的網址。這是因爲如果IE從另一個域打開一個新窗口,IE將不會返回任何內容。