我需要在另一个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>
答案 0 :(得分:0)
如果您切换到HTML5而不是您当前正在使用的(过时的)过渡文档类型,则可以使用&#34;沙盒&#34;归因于<iframe>
,其中包括禁用iframe更改框架页面位置的功能。 (我确实看到你已经有了这个属性,但它对HTML5之前的文档没有任何影响。)
&#34;沙盒&#34;的选项财产是here。 (所有这些都减少了对框架网站的限制;如果你想要的只是阻止window.top导航,请包括除&#34; allow-top-navigation&#34;之外的所有选项。)
但这不会创建您想要的行为:它会导致那些target="_top"
链接根本不起作用,而不是让它们留在框架内。
除此之外,无法更改您无法控制的第三方网站的功能。