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