我有下一个元素结构:
<div class="container">
<iframe class="outer">
..
<iframe class="inner">
actual markup with scripts here
</iframe>
</iframe>
</div>
使用纯粹的javascript,我已经走出了“内部”iframe进入外部的那个:
//this is HTML tag of ".outer" iframe
var parent = window.parent.document.getElementsByTagName('html')[0];
但我仍需要使用“.container”元素来操纵它。 谁能告诉我如何从“.inner”元素中的脚本中获取“.container”元素?
答案 0 :(得分:5)
也许这个:
var outer = window.parent;
var mainWindow = outer.parent;
var container = mainWindow.document.getElementsByClassName('container')[0];
但请不要忘记您的iframe必须位于同一个域中。
答案 1 :(得分:1)
我会尝试
var containerElement = window.frames.top.top.document.getElementsByClassName('container')[0];
但要小心:如果您试图突破您的框架并希望访问具有不同域,端口或协议的文档,您的浏览器(希望如此)将返回如下的异常:
未捕获的SecurityError:阻止具有原点“null”的帧访问具有原点“null”的帧。协议,域和端口必须匹配。