[英]Is there a way to prevent an iframe from redirecting parent window, but in such a way that “top level” redirects still work inside the iframe itself?
所以我已經閱讀了HTML5 sandbox
屬性,我知道如果我想阻止 iframe 重定向其父窗口,我可以使用sandbox
屬性而將allow-top-navigation
排除在外。 然而,當這樣做時,如果 iframe 最初依賴於頂級重定向,那么它會重定向到一個空白頁面,從而有效地破壞導航。
我可以防止 iframe 修改其父窗口,同時仍然允許“頂級”重定向,只讓這些在 iframe 的上下文中工作而不是在頂級?
編輯:對於上下文,我正在與第三方合作,其頁面有一個目標為_top
的表單。 如果 iframe 被沙盒化,則在提交表單時用戶會得到一個空白頁面,如果它沒有被沙盒化,則整個頁面都會被重定向。 我正在尋找允許提交表單並在 iframe 本身中顯示結果的東西。
在HTML5 中,添加了iframe 沙箱屬性。
在撰寫本文時,它適用於 Chrome、Safari、Firefox 以及最新版本的 IE 和 Opera,但幾乎可以滿足您的需求:
<iframe src="url" sandbox="allow-same-origin"></iframe>
瀏覽器兼容性
一些有用的鏈接
您可以使用onbeforeunload
屬性並確定是否要重定向。
基本上我會嘗試是這樣的:
allow-top-navigation
即可onbeforeunload
屬性上綁定一個函數(一定不要返回任何東西,因為會彈出一個對話框)這應該有效,因為請求首先在 iframe 中發出,然后我們可以防止它傳遞到我們的頂級窗口。
您應該檢查的另一件事是您是否可能遺漏了allow-forms
選項,這可能會導致您所描述的情況。
請讓我知道這是否有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.