3

我想我可以通过将 jQuery 函数的上下文设置为 iframe 的文档来做到这一点,例如:

$(function(){//document ready
$('some selector', frames['nameOfMyIframe'].document).doStuff()
});

但是,这似乎不起作用。一些检查表明,除非我等待 iframe 加载一段时间,否则 frames['nameOfMyIframe'] 中的变量是未定义的。但是,当 iframe 加载时,变量不可访问(我得到权限被拒绝类型错误)。

有谁知道解决这个问题的方法?

4

2 回答 2

1

如果您不能使其他站点包含相关的 CORS 标头,则唯一的“解决方法”是获取 iframe 内容服务器端并将其作为来自您自己的域的服务。

没有更简单的解决方法的原因是为什么存在相同的来源策略:保护用户。

您无法使用跨域 iframe 执行任何访问

于 2013-10-07T13:07:33.697 回答
0

如上所述,您的问题是所谓的“同源策略”,本质上是与范围相关的问题。本质上独立的 html 文档之间的通信是不合法的。但是,对于 iframe 驻留在同一页面上可以在第三方中介的帮助下相互通信的几种情况,有一些解决方法,请查看这个惊人的解决方案作为示例:

根据内容调整 iframe 的大小

于 2013-10-07T13:05:56.473 回答