打開另一個頁面我有一個創建與頁面B的窗口發送刷新請求在瀏覽器
網頁B詢問用戶一些DATAS,將它們插入數據庫頁A,然後自行關閉。 插入後,我試圖讓頁面A自動刷新(它可以是從A看到B已經關閉,或者由B本身在(或之後?)關閉之前觸發的功能)
如何可以我這樣做?
打開另一個頁面我有一個創建與頁面B的窗口發送刷新請求在瀏覽器
網頁B詢問用戶一些DATAS,將它們插入數據庫頁A,然後自行關閉。 插入後,我試圖讓頁面A自動刷新(它可以是從A看到B已經關閉,或者由B本身在(或之後?)關閉之前觸發的功能)
如何可以我這樣做?
JavaScript的window.open()
返回的引用,打開的窗口的實例。你可以用它來建立onunload
事件處理程序,如下所示:
var hWndB = window.open('somepage.php'),
hWndA = window.self;
hWndB.onunload = function(){ hWndA.location.reload(); }
我結束了使用這個,最快和工作。 – user1722791
@ user1722791祝您好運 – BlitZ
變 「A眼看B關閉」:
//winb is global variable
winb=window.open(blah blah); //Existing: A opens B
window.setTimeout(checkWinB,1000);
function checkWinB() {
if (winb.closed()) refreshMySelf();
else window.setTimeout(checkWinB,1000);
}
變 「B踢A」:
opener.rerfreshMySelf();
window.close() //Existing: B closes
兩種變體需要refreshMySelf()
功能刷新頁面。如何做到這一點取決於頁面的機制,但對於非AJAX頁面起點是
function refreshMySelf() {
location.reload();
}
可以使用onunload
事件和window.opener
。例如。
window.addEventListener('unload', function() {
window.opener.location.reload();
}, false);
或者你可以使用jQuery,所以你不會有任何跨瀏覽器兼容性問題:
$(window).on('unload', function() {
window.opener.location.reload();
});
也有一個名爲onbeforeunload
另一個事件,你可能想看看。
編輯
對於較舊的瀏覽器,您可以使用@CORRUPT在評論中提供了破解:window.open() returns undefined or null on 2nd call
'window.opener'在某些[***案件***]中不可靠(http://stackoverflow.com/questions/960293/window-open-returns-undefined-or-null-上第二個呼叫)。 – BlitZ
謝謝。我已將您的鏈接添加到答案:) – lexmihaylov
可以通過JavaScript'window.onclose',不是嗎?或者你試圖通過PHP來做到這一點? – BlitZ
嗯,也許,但我怎麼能這樣處理頁面A? (php或javascript都可以,編輯標籤) – user1722791