在Iframe集合中循环时出现Javascript错误-->;防止错误的索引问题

在Iframe集合中循环时出现Javascript错误-->;防止错误的索引问题,javascript,jquery,iframe,internet-explorer-8,Javascript,Jquery,Iframe,Internet Explorer 8,我正在比较javascript中的所有iframe,看看其中是否有一个与我的元素(a-tag)的body元素匹配。我遇到的问题是iframe的集合有时会发生变化,因为它们都是由一个框架生成的。因此,有时我会在IE8中出现“访问被拒绝”错误,有时则不会。我没有引用任何外部Iframe,因为我的所有Iframe都是框架的一部分,因此具有相同的protocoll、port等。这是我用来循环Iframe集合的代码: var calculatedwidth = 0; var calculatedheigh

我正在比较javascript中的所有iframe,看看其中是否有一个与我的元素(a-tag)的body元素匹配。我遇到的问题是iframe的集合有时会发生变化,因为它们都是由一个框架生成的。因此,有时我会在IE8中出现“访问被拒绝”错误,有时则不会。我没有引用任何外部Iframe,因为我的所有Iframe都是框架的一部分,因此具有相同的protocoll、port等。这是我用来循环Iframe集合的代码:

var calculatedwidth = 0;
var calculatedheight = 0;

var searchbody = $(srcElement).closest('body');
//I store the Iframe-nodelist in var arrFrames
var arrFrames = document.getElementsByTagName("iframe");
LabelA1:
for(i = 0; i<arrFrames.length; i++){
    //console.log(i);
    //if(arrFrames[i].id != 'PeopleDetailsIframe'){

        if($(arrFrames[i].contentWindow.document.body).is(searchbody)){
        // This line is where the error occures normaly
               calculatedwidth = $(arrFrames[i]).offset().left;
               calculatedheight = $(arrFrames[i]).offset().top;
               break LabelA1;
        }
        else{
              //console.log("Forum Iframe not found");
            }
     }  
}  
这没用。有什么建议可以防止错误的索引问题吗?还是我完全错了我的问题所在?
非常感谢您的帮助

您可以在
if()
周围放置一个
try catch
。这样,循环应该始终运行而不出错

var calculatedwidth = 0;
var calculatedheight = 0;

var searchbody = $(IframeDocument).closest('body');
var arrFrames = document.getElementsByTagName("iframe");
LabelA1:
for(i = 0; i<arrFrames.length; i++){
    //console.log(i);
    //if(arrFrames[i].id != 'PeopleDetailsIframe'){

        try {
            if($(arrFrames[i].contentWindow.document.body).is(searchbody)){
            // This line is where my the error occures normaly
                   calculatedwidth = $(arrFrames[i]).offset().left;
                   calculatedheight = $(arrFrames[i]).offset().top;
                   break LabelA1;
            }
            else{
                  //console.log("Forum Iframe not found");
                }
        } catch() {
            // the IFrame has security issue => avoid it
        }
     }  
}  
var计算宽度=0;
var计算高度=0;
var searchbody=$(IframeDocument).closest('body');
var arrFrames=document.getElementsByTagName(“iframe”);
标签1:
对于(i=0;我避免它)
}
}  
}  

天哪,我怎么可能是瞎子!谢谢你指出了这一点,伙计。现在开始工作:)
var calculatedwidth = 0;
var calculatedheight = 0;

var searchbody = $(IframeDocument).closest('body');
var arrFrames = document.getElementsByTagName("iframe");
LabelA1:
for(i = 0; i<arrFrames.length; i++){
    //console.log(i);
    //if(arrFrames[i].id != 'PeopleDetailsIframe'){

        try {
            if($(arrFrames[i].contentWindow.document.body).is(searchbody)){
            // This line is where my the error occures normaly
                   calculatedwidth = $(arrFrames[i]).offset().left;
                   calculatedheight = $(arrFrames[i]).offset().top;
                   break LabelA1;
            }
            else{
                  //console.log("Forum Iframe not found");
                }
        } catch() {
            // the IFrame has security issue => avoid it
        }
     }  
}