从嵌入式 iframe 中获取全局变量



说一个HTML页面(Page.htm)包含以下内容...

<script type="text/javascript">
    var vara = 'varA';
</script>

现在,此页面从另一个页面加载到iframe中,其中包含...

<iframe id="child_frame" src="http://mysite.com/Page.htm" />

父页面,我想从 Page.htm 获取全局"vara"的值。

以下行都不起作用...

    window.frames['child_frame'].window.vara;
    window.frames['child_frame'].window['vara'];
    window.frames['child_frame'].contentWindow['vara']; 
    // in fact contentWindow returns undefined!!

任何帮助将不胜感激!

更新

在更多地研究这个问题并尝试了可用于解决此问题的各种库之后,我顿悟了,由于我对主网站和 iframe 嵌入式网站都有 IIS 控制,因此我可以在跨域脚本规则中工作,方法是对各种网站使用相同的基本 URL。 此外,解决此问题的库似乎需要不断更新,因为浏览器供应商通过持续更新来加强其安全性。 必须始终更新解决方法以规避浏览器试图阻止您做的事情,这确实是一件苦差事。

如果你在同一个doamin,你的第一个语法应该可以工作。

如果IFRAME正在从另一个域加载页面,那么您将无法访问它。

这个:

<iframe id="child_frame" src="http://" />

应该是:

<iframe name="child_frame" src="http://" />

iframe 属性"id"应更改为"name"。

最新更新