我知道iframe访问父DOM的跨域问题,反之亦然,但我发现iframe可以将其父级重定向到另一个位置。以“父”页面为例:
<!-- http://www.domain1.com -->
<iframe id="some_iframe" src="http://www.domain2.com"></iframe>
嵌入内容:
<!-- http://www.domain2.com -->
<html>
<head>
<title>I'm embedded</title>
</head>
<body>
<input type="button" onclick="parent.location = 'http://www.domain3.com';" value="Redirect my parent to another site" />
</body>
</html>
如果单击嵌入内容中的按钮,父成功将成功重定向到第三个URL。显然,iframe中的嵌入内容可以访问设置其父级的位置。但是,如果我尝试在父级上调用任何其他方法(例如,“parent.outerHeight”),我会得到“不安全的JavaScript尝试从http://www.domain1.com/的帧中访问带有URL http://www.domain2.com/的帧。域,协议和端口必须匹配。”在我的JS控制台中。
我很好奇除了“位置”之外的其他方法(如果有的话)是能够调用它的父对象的嵌入内容。是否列出了这些公共职能?感谢。