HTML沙盒iframe - 将父级调用重定向到同一iframe

时间:2017-06-10 15:03:13

标签: html iframe

我需要在另一个HTML页面中嵌入第三方webapp。问题是这个webapp包含对window.top的调用,所以在我的iframe中不起作用。

例如,在此代码中,我希望“www.google.com”在iframe中加载,而不更改“FramePage.html”的代码:

<!--ParentPage.html-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title></title>
</head>
<body>
  Parent Page
  <iframe src="FramePage.html" sandbox></iframe>
</body>
</html>

<!--FramePage.html-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title></title>
</head>
<body>
  FRAME
  <a href="http://www.google.com" target="_top">hello</a>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

如果您切换到HTML5而不是您当前正在使用的(过时的)过渡文档类型,则可以使用&#34;沙盒&#34;归因于<iframe>,其中包括禁用iframe更改框架页面位置的功能。 (我确实看到你已经有了这个属性,但它对HTML5之前的文档没有任何影响。)

&#34;沙盒&#34;的选项财产是here。 (所有这些都减少了对框架网站的限制;如果你想要的只是阻止window.top导航,请包括除&#34; allow-top-navigation&#34;之外的所有选项。)

但这不会创建您想要的行为:它会导致那些target="_top"链接根本不起作用,而不是让它们留在框架内。

除此之外,无法更改您无法控制的第三方网站的功能。