jQuery/JavaScript:访问一个iframe的内容
我想用jQuery来操作iframe里面的HTML。
我想我可以通过设置jQuery函数的上下文为iframe的文档来做到这一点,比如说。
$(function(){ //document ready
$('some selector', frames['nameOfMyIframe'].document).doStuff()
});
然而,这似乎并不奏效。稍微检查一下,我发现frames['nameOfMyIframe']中的变量是
未定义的',除非我等待一段时间让iframe加载。然而,当iframe加载时,这些变量是不可访问的(我得到了 "拒绝许可 "类型的错误)。
有谁知道这个问题的解决方法吗?
768
3
我认为你正在做的事情受到同源政策的制约。这应该是你得到许可拒绝类型错误的原因。
你需要给iframe的onload处理程序附加一个事件,并在其中执行js,这样你就可以在访问iframe之前确保它已经完成加载。
上述做法可以解决尚未加载的问题,但关于权限问题,如果你在iframe中加载的是来自不同域的页面,由于安全限制,你将无法访问它。
你有没有试过经典的方法,使用jQuery'的内置ready函数来等待加载完成?
K