簡體   English   中英

有沒有辦法阻止 iframe 重定向父窗口,但“頂級”重定向仍然在 iframe 內部工作?

[英]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 內容視為與包含文檔來自同一來源

<iframe src="url" sandbox="allow-same-origin"></iframe>

瀏覽器兼容性在此處輸入圖片說明


一些有用的鏈接

您可以使用onbeforeunload屬性並確定是否要重定向。

這是它的文檔頁面

基本上我會嘗試是這樣的:

  • 制作一個將沙箱屬性與所有內容一起添加到 iframe 的函數,只需省略allow-top-navigation即可
  • 在調用添加沙箱屬性的函數的iframe的onbeforeunload屬性上綁定一個函數(一定不要返回任何東西,因為會彈出一個對話框)

這應該有效,因為請求首先在 iframe 中發出,然后我們可以防止它傳遞到我們的頂級窗口。

您應該檢查的另一件事是您是否可能遺漏了allow-forms選項,這可能會導致您所描述的情況。

請讓我知道這是否有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM