【发布时间】:2018-06-20 19:25:29
【问题描述】:
我的主页包含一个<iframe>,它指向一个包含<frameset> 的HTML 文件。它看起来类似于以下内容(为便于阅读而进行了简化):
<html>
<body>
<iframe id="content" src="/same/domain/url" />
</body>
</html>
<iframe> 的内容如下所示:
<html>
<body>
<frameset>
<frame name="menu" src="/same/domain/menu/url" />
<frame name="main" src="/same/domain/initial/main/url" />
</frameset>
</body>
</html>
我正在尝试从主页读取main 框架的当前位置href。
$("#content").contents().find("frame[name=main]")[0].contentWindow.location.href
不幸的是,在 IE8 上它给了我“权限被拒绝”错误。这看起来像是跨域脚本预防机制,但所有 URL 都来自同一个域/协议/端口。对于相同的 javascript 代码,Chrome 给了我正确的值(惊喜,惊喜)。
请注意:
- 我不能使用框架的
src属性,因为用户可能已经使用“菜单”框架导航到另一个页面(仍然是同一个域)。 - 我无法控制
iframe页面的内容,这些内容由应用程序的另一部分提供,在我看来无法修改
我该如何解决这个问题?
【问题讨论】:
标签: javascript internet-explorer iframe internet-explorer-8 frameset