我会尽力保持这一点。以下代码在IE10中正常工作:
if (!document.getElementById(frames[i][j].toString()).contentWindow.MyFunc()) {
alert("Failed");
return false;
}
然而,在IE8中,它失败,因为MyFunc()上的“对象不支持此属性或方法”
但是,它确实找到了内容窗口。
一些可能有用的信息:
'frames'是iframe对象的2D数组
此代码存在于父代中
MyFunc()在子iframe中定义。
基本上,我的问题归结为:
document.getElementById(frames[i][j].toString()).contentWindow.*whatgoeshere?*
我确实看到了this帖子,但事实并没有多大帮助
这不是iframe未知的情况(例如:this post),因为代码在文档准备好后很长时间才会触发。
虽然错误不同(拒绝访问),但我想知道是否需要做一些比this帖子中发现的更复杂的事情。
答案 0 :(得分:0)
感谢Chris和Arnar花费了大量时间和精力。原来这完全是我的错。今天当我看着MyFunc()时,我注意到它依赖于jQuery validationEngine:
function MyFunc()() {
if (!$('#form1').validationEngine('validate')) { return false; }
$("#btn").click();
return true;
}
然后我注意到validationEngine js库的版本在我的机器上是新的,然后是我的测试服务器上的那个...傻了我,我没有部署我对validationEngine做的更新... doh !
对于在事后阅读此内容的任何人:
检查您可能正在使用的任何库的依赖关系(特别是在子函数中)!