當沒有向彈出窗口添加任何JavaScript代碼時關閉彈出窗口是否有任何方法可以刷新父窗口?當彈出窗口關閉時刷新父窗口
我有一個頁面parent.php,用戶可以點擊「打開彈出」打開一個彈出窗口。該彈出窗口顯示了一些Flash內容和我不可能像
window.onunload = function(){
window.opener.location.reload();
};
添加一些彈出窗口頁面標記。
有沒有其他方法可以實現這一點? 感謝
當沒有向彈出窗口添加任何JavaScript代碼時關閉彈出窗口是否有任何方法可以刷新父窗口?當彈出窗口關閉時刷新父窗口
我有一個頁面parent.php,用戶可以點擊「打開彈出」打開一個彈出窗口。該彈出窗口顯示了一些Flash內容和我不可能像
window.onunload = function(){
window.opener.location.reload();
};
添加一些彈出窗口頁面標記。
有沒有其他方法可以實現這一點? 感謝
爲了使這項工作在所有主要瀏覽器,你需要處理在彈出unload
事件處理程序,在主窗口中重新加載。在主窗口,添加
function popUpClosed() {
window.location.reload();
}
在彈出:
window.onunload = function() {
if (window.opener && !window.opener.closed) {
window.opener.popUpClosed();
}
};
所以回答你的問題一般是否定的,如果你需要你的代碼在所有瀏覽器的工作,特別是IE 。
我敢肯定,你可以再補充這parent.php:
var myPop = "pop up window selector"
myPop.onunload = function(){
location.reload();
};
有類似的問題檢測父窗口中的關閉彈出窗口。我認爲原因是 沒有設置document.domain屬性。
任何方式加入到添下回答了窗口和彈出這樣document.domain屬性:
<script type="text/javascript">
document.domain='<?=$_SERVER['SERVER_NAME']?>';
</script>
代替
window.onunload = function() {
if (window.opener && !window.opener.closed) {
window.opener.popUpClosed();
}
};
我在彈出的使用和:
<body onunload="window.opener.popUpClosed();">
Tim Down的方法存在的問題是它不能回答原來的問題。要求是你不能添加任何代碼到彈出窗口。
我找到的一個解決方案雖然不是特別優雅,但在我測試過的所有瀏覽器中都很有效。
您將只是簡單地輪詢新創建的窗口對象,檢查它是否仍然打開。
在父窗口:
var register;
var poll;
function isOpen(){
if(register.closed){alert("Closed!"); clearInterval(poll);}
}
function create(){
register = window.open("http://www.google.com","register","width=425,height=550");
poll=setInterval("isOpen()",100); //Poll every 100 ms.
}
你試圖在onunload的處理程序添加到從父窗口的彈出式窗口的句柄? – Gordon 2010-11-24 14:28:38
@戈登 - 對不起? – Kay 2010-11-24 14:30:10
like benhowdle below below – Gordon 2010-11-24 14:42:19