在我的javascript我想用這種方法打開新窗口的URL:如何檢查的JavaScript不要與window.open函數打開同一個窗口
var win = window.open(url...);
如何檢查這一點,不要打開相同窗口並丟失所有輸入的數據。 例如,如果我在新窗口中打開「www.musite.com/addproduct」URL,輸入數據,請離開我的工作地點。然後我再次點擊打開的窗口,打開新窗口,我丟失了所有數據。
在我的javascript我想用這種方法打開新窗口的URL:如何檢查的JavaScript不要與window.open函數打開同一個窗口
var win = window.open(url...);
如何檢查這一點,不要打開相同窗口並丟失所有輸入的數據。 例如,如果我在新窗口中打開「www.musite.com/addproduct」URL,輸入數據,請離開我的工作地點。然後我再次點擊打開的窗口,打開新窗口,我丟失了所有數據。
下面將讓你在打開的窗口只有一次:
if (typeof win !== 'object') {
win = window.open('http://www.google.com');
}
else {
// Do nothing
}
由於Sani suggested in another answer,明智的做法是跟蹤在關閉窗口的,爲了能夠重新打開它。你可以聽在彈出窗口中的window.onunload
事件,如下所示:
window.onunload = function() {
window.opener.win = undefined;
}
的onunload
事件處理程序將設置一個打開彈出窗口undefined
窗口win
全局變量,這樣你就可以重新打開窗口。
請注意,由於same origin policy,這隻有在您打開的彈出窗口與父窗口位於同一個域中時纔有效。另外請注意,我只在Firefox中測試過上述內容。
window.open
函數返回一個引用到窗口如果successfull或null如果不成功。
你應該檢查win
不爲空:
if (win != null) {
// It is now safe to open the window.
}
你還需要設置win
在關閉窗口爲空,這樣你就會知道,你可以再次打開它。
謝謝,我怎麼可以檢查窗戶關閉時的事件? 和... var win = window.open(url) - 此時窗口已經打開 – Dmitriy 2010-04-23 20:43:20
窗口關閉是否有任何事件?因爲我檢查這個解決方案..和:我第一次打開窗口 - 好的。嘗試打開窗口的第二個副本 - 確定(消息)。關閉窗口。打開一個窗口 - 錯誤(已打開窗口的消息) – Dmitriy 2010-04-23 20:48:40
是的,您可以在彈出窗口中偵聽「window.onunload」事件:https://developer.mozilla.org/en/DOM/window.onunload – 2010-04-23 20:51:29
謝謝很多,效果很好 – Dmitriy 2010-04-23 21:08:15