我一直在尝试与来自同一个域的两个 iframe 进行通信,这两个 iframe 是从另一个域加载到一个页面中的。
问题是浏览器会在iframe内容上创建自定义框架集。 我无法使用 parent.iframes [x] .name 从iframe中检索iframe名称,因为脚本将 frameset 作为父级。
以下是我的实际HTML代码 -
<html>
<head>
</head>
<body>
<p>iframe1</p>
<script type="text/javascript">
var frames = parent.frames;
for(var i=0; i < frames.length; i++)
{
if(frames[i].name != "undefined")
alert(frames[i].name);
}
</script>
</body>
</html>
以下是浏览器生成的内容 -
<!--inside iframe-->
<html>
<head></head>
<frameset border="0" rows="100%,*" cols="100%" frameborder="no">
<!--actual document goes inside frame tag-->
<frame name="TopFrame" scrolling="yes" noresize="" src="http://abnormalz.stuffshake.com/fframe.html">
<frame name="BottomFrame" scrolling="no" noresize="">
<noframes></noframes>
</frameset>
</html>
这个问题有解决办法吗?
查看测试答案 0 :(得分:1)
只需使用localStorage或sessionStorage即可。由于两个iframe都来自同一个域,因此它们共享相同的localStorage。如果修改了值,LocalStorage将发送事件。
自IE8起支持。