Javascript 通过iframe.contentWindow访问IE中的JS函数
我会尽我最大的努力保持这个简单。以下代码在IE10中运行良好:Javascript 通过iframe.contentWindow访问IE中的JS函数,javascript,internet-explorer-8,Javascript,Internet Explorer 8,我会尽我最大的努力保持这个简单。以下代码在IE10中运行良好: if (!document.getElementById(frames[i][j].toString()).contentWindow.MyFunc()) { alert("Failed"); return false; } 然而,在IE8中,它失败了,因为对象不支持MyFunc上的此属性或方法 但是,它确实可以找到contentWindow 一些可能有用的信息: “帧”是iframe对象的
if (!document.getElementById(frames[i][j].toString()).contentWindow.MyFunc()) {
alert("Failed");
return false;
}
然而,在IE8中,它失败了,因为对象不支持MyFunc上的此属性或方法
但是,它确实可以找到contentWindow
一些可能有用的信息:
“帧”是iframe对象的二维数组。
此代码存在于父级中。
MyFunc在子iframe中定义
基本上,我的问题归结为:
document.getElementById(frames[i][j].toString()).contentWindow.*whatgoeshere?*
我确实看到了这篇文章,但它并没有起到多大作用。
这并不是iframe不为人所知的情况,例如:post,因为代码在文档准备好之后很长一段时间才会触发。
虽然错误是不同的访问被拒绝,但我想知道我是否需要做一些更复杂的事情,如我在帖子中发现的。感谢Chris和Arnar为此花费的时间和精力。原来这完全是我的错。今天,当我查看MyFunc时,我注意到它依赖于jQuery validationEngine:
function MyFunc()() {
if (!$('#form1').validationEngine('validate')) { return false; }
$("#btn").click();
return true;
}
然后我注意到validationEngine js库的版本在我的机器上更新了,然后在我的测试服务器上更新了…真傻,我没有部署我对validationEngine的更新…啊
对于事后阅读本文的任何人:检查您可能正在使用的任何库的依赖关系,尤其是在子函数中 您的内容和iFrame中的内容是否在同一个域中?您应该在IE中记录whatever.contentWindow的内容,看看它是否符合您的期望