拦截尝试重定向父页面的 iframe

问题描述 投票:0回答:1

我有一个 iFrame,其中包含我无法控制的内容。在某些情况下,此 iFrame 会重定向我想要阻止的顶部窗口。理想情况下,我想拦截此重定向,检索重定向 URL,然后将首页重定向到不同的 URL。

我尝试使用

window beforeunload
事件,但它还添加了一个关于“您确定要离开网站吗”的弹出窗口,我也想避免这种情况。

还尝试使用“沙箱”,但它完全阻止重定向,并且我还没有找到一种方法来对这种情况下的重定向尝试做出反应。

我当前的代码就这么简单:

<iframe
  src="my embed url"
/>

编辑:如果有人认为我在做一些见不得人的事情,请阅读完整的故事。 我们使用 Figma 作为制作交互式原型的第三方工具。它们提供用于嵌入目的的特定 URL。 在我们制作的原型中,一些按钮应该将用户重定向到不同的页面。不幸的是,Figma 不只是重定向,而是首先将整个网站重定向到他们的 URL,并带有关于离开网站的自定义警告。许多人报告这是一个错误,并要求他们修复此行为,因为它使嵌入原型几乎没有用处。到目前为止他们还没有采取任何行动。 由于在了解这个强制警告窗口之前我们已经投入了大量时间来制作这个原型,因此我正在尝试找到一种解决方法。

javascript iframe
1个回答
0
投票

多年来,对浏览器中位置对象的访问变得越来越严格,尽管您尝试这样做有充分的理由,但来自网络上第三方组件的不断增长的威胁意味着您想要访问位置对象的大多数原因这种行为越来越恶意,导致跨源访问位置被阻止。

也就是说 Figma 可以通过

top.location.href
parent.location.href
来完成此操作,如果是后者,则将 Figma iframe 嵌套在另一个 iframe 中,然后使用
onload
来检测外部 iframe 的更改就可以了。然而,如果他们走了
top
路线,那么这些天你在浏览器中做任何事情基本上就不走运了。

剩下的就是创建一个反向代理,可以通过字符串处理器过滤 Figma 的页面,以将

top.location
的引用替换为您更喜欢的内容。这可能会使您的 Figma 许可证失效,因此请谨慎行事,并保留代码。

© www.soinside.com 2019 - 2024. All rights reserved.