说一个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"。