2011-09-08 55 views
1

我有一個頁面A,它以myWin = window.open(..)的形式打開一個javascript窗口。現在在同一個域中的另一個頁面B中,當用戶點擊鏈接時,我想檢查myWin是否可用,如果是,則將該窗口放在前面,否則執行一個新的myWin。作爲單例的Javascript彈出窗口

我的問題是在這兩個頁面和window.js的window.js文件包含行

VAR myWin = NULL;

在頁面範圍內,我的邏輯工作,並帶來了前面的窗口。在頁面B中它也適用。當我打開頁面A中的窗口時,點擊頁面B中的鏈接就會失敗。

就好像myWin在頁面範圍內重置爲null。我該如何克服這個問題?指針??/

回答

1

彈出窗口由頁面A創建,只有頁面A包含對該窗口的引用。當您打開頁面B時,無法將頁面A對彈出窗口的引用傳遞到頁面B.這是無法完成的。

1

你想用空的URL調用window.open,例如

var newWindow = window.open('', title, dimension); // title needs to be a constant 
if (newWindow.location.href && newWindow.location.href!='about:blank') { 
    // Window was already open and points to something 
    newWindow.focus(); 
} else { 
    // new window make it point to something 
    newWindow.location.href = 'http://yoursite'; 
} 

這假定彈出窗口與同一站點調用頁面中打開一個窗口,否則可能會遇到的各種權限問題。