Javascript IE8-对象不支持此属性或方法(window.frames[i];)

Javascript IE8-对象不支持此属性或方法(window.frames[i];),javascript,internet-explorer-8,Javascript,Internet Explorer 8,第一次张贴 我在IE8上遇到间歇性问题,我会: 对象不支持此属性或方法 使用以下命令将iFrame检索到变量时会发生这种情况: var wfw = window.frames[i]; 让我困惑的是,在我调用的这行代码之前: var length = window.frames.length; 它返回值4。我想我的问题是为什么我不能找回存在的东西 var length = window.frames.length; for(var i = 0; i < length; i++){

第一次张贴

我在IE8上遇到间歇性问题,我会:

对象不支持此属性或方法

使用以下命令将iFrame检索到变量时会发生这种情况:

var wfw = window.frames[i];
让我困惑的是,在我调用的这行代码之前:

var length = window.frames.length;
它返回值4。我想我的问题是为什么我不能找回存在的东西

var length = window.frames.length;
for(var i = 0; i < length; i++){
    // Grab the window.frames collection so that we can iterate through it.
    var wfw = window.frames[i];
    try {
        // Attempt to push the BISCheckEvent code onto the child Window and execute it. This is to account for Iframes that have already loaded
        wfw.eval("var BISCheckEvent = new " + BISCheckEventImpl.toString() + "; BISCheckEvent.attachHandler(); ");
    } catch(e){
        // Iframe has no source, so just capture the exception and move on.
    }
}

很抱歉对这个问题的回复太晚,但是Sheikh Heera建议确保在父页面中加载的所有帧都解决了这个问题

如果这是一个间歇性的问题,那么它很可能是由使用i的简单访问以外的其他原因引起的。在我看来,window.frames有时是未定义的。也许在您的var wfw行上设置一个断点并检查它,或者只是将它扔到一个警报或控制台中,忘记IE8是否支持它来检查?我在一个IE8虚拟机中尝试了window.frames和.length以及[0],它们都成功了。我面前没有IE8,所以我无法测试它,但您尝试过window.framesi吗?用括号代替括号。如果不是这样,您确定是window.frames[i]位引发了错误吗?确保所有帧都已加载到父页面中。我已经遇到了与您相同的问题,我的一个帧没有指向任何地方src=。IE8不喜欢它,所以我没有使用src=,而是创建了一个名为blank.htm的空白htm文件,并将框架src更改为该文件。它突然起作用了。。。为什么?不幸的是,我不知道。