2012-12-18 406 views
-1

php中彈出,我想知道是否有這樣子窗口打開時關閉父窗口。我目前正在使用框架(是的,我知道使用框架的麻煩,但你知道客戶端)。所以當前我試圖做的是當在框架中單擊鏈接時打開一個新的子窗口child.php。一旦這個子窗口打開,現在需要使用javascript關閉整個框架index.php。這是可能的,請讓我知道天氣這是瀏覽器依賴或不。關閉子窗口時父窗口使用框架

+0

PHP是服務器端。它無法打開或關閉瀏覽器窗口。你的意思是在這裏使用JavaScript嗎? – Charles

+0

是的JavaScript。 – freaky

+0

請在提問前做好功課。你試過什麼了? - 並參考手冊,例如[關於window.close()'在MDN](https://developer.mozilla.org/en-US/docs/DOM/window.close) - 可能重複的[爲什麼window.Close()不工作火狐(http://stackoverflow.com/q/7510835/367456) – hakre

回答

1

您可以使用JavaScript只關閉瀏覽器窗口,如果它是用JavaScript window.open()打開。在一些瀏覽器實現中(更像過去,但我不確定這一點),如果你試圖關閉()一個未被JavaScript打開的窗口,瀏覽器會彈出一個確認對話框,告訴用戶腳本想要關閉窗口。

因此,答案是yes和no。不,你不能默認。現代瀏覽器將無視此錯誤。另一方面,如果你真的想這樣做,你應該用JavaScript打開你的主框架集。就像使用一個別無它物的加載頁面一樣,只需使用window.open()彈出框架集。然後,如果您打開任何框架的其他窗口,則可以關閉框架窗口。

+0

所以你說的是,我必須在框架集中使用'window.open'和一些值,然後只有當我打開一個子窗口時,我纔可以使用'window.close'來關閉主框架集。 – freaky

+0

是的。正確的方法是在你的「loader」中: 'var win = window.open(...);' 然後你必須在'win'上調用'close()'。 – marekful

+0

此外,這是值得大家注意的是,如果您從您的框架打開一個窗口(這是由JavaScript打開),您可以通過關閉從打開一個框架集窗口「window.opener.close()」,而不是我所建議的方式以上。 – marekful