當前位置:吉日网官网 - 油畫收藏 - 最新版本的chrome不能用js關閉窗口。怎麽解決?

最新版本的chrome不能用js關閉窗口。怎麽解決?

遇到同樣的問題,解釋壹下:

Chrome從版本37開始默認停止支持window.showModalDialog(註冊表可以修改到2065438+2005年5月)。

對於從瀏覽器手動打開的非模態窗口,從我意識到自關閉的問題開始,Chrome就已經不支持了——比如妳給自己的頁面做了註銷功能,點擊後想用妳說的自關閉方法關閉這個頁面,在Chrome上是關閉不了的(但是妳可以指定另壹個顯示註銷狀態的頁面,效果也是壹樣的,註銷也不用關閉那個頁面)。

現在它已經不再支持showModalDialog,非模態窗口也不允許自關閉,所以從代碼中完全禁止自關閉是合理的。

解決方案:

解決showModalDialog的問題,可以自己模擬壹個模態窗口,比如iframe,就像微博裏的轉發窗口壹樣。點擊後,用戶將無法操作原頁面的其他元素。但是如果模擬的話,主要會遇到JS繼續執行的問題。showModalDialog會阻止原頁面JS繼續執行,直到獲得新窗口的返回結果。如果自己模擬這種行為,可以考慮回調模式。時間和篇幅有限,就不細說了。每個想替換showModalDialog的人都會遇到這個問題,網上應該能找到很多打包的方法。

先說說為什麽需要自己寫壹個showModalDialog的原因。在Chrome宣布停止支持showModalDialog之後,FireFox也首次在文檔和DebugTool中表明也將停止支持showModalDialog。還沒正式停,大概是在等用戶對Chrome的反應。

ShowModalDialog本來畢竟是IE獨有的,還沒有被納入W3C標準。Chrome對它的支持壹直很差。例如,如果您從壹個頁面打開showModalDialog,您可以轉到其他頁面,查看原始頁面,甚至對原始頁面進行操作,但這些操作只有在您關閉showModalDialog後才能起作用。

不過火狐對showModalDialog的支持壹直都很好,和IE基本壹致,只是IE在慢慢的遵循W3C標準(尤其是新的IE11),火狐拋棄showModalDialog只是時間問題。

最後,您“繪制”的模式對話框完全在您的控制之下,您可以公開壹個關閉接口,以允許父窗口打開的模式對話框從子窗口關閉。

(最近沒被這個困擾,這麽多碼,跟吐壹樣...)

  • 上一篇:普洱茶的作用是什麽?
  • 下一篇:有什麽好看的二戰紀錄片
  • copyright 2024吉日网官网