2012-03-24 82 views
0

我很久没有挣扎了,最后我不得不发布一个查询,因为直到现在我还没有收到任何相关的答案。跨浏览器解决方案检查空iframe

我需要的是检查空Iframes并相应地调用一个函数。我正在寻找下面三行代码的替代品,以便能够在所有浏览器中工作,而不仅仅在IE中工作。

if (this.document.frames != null) { 
    for (var i=0;i<this.document.frames.length;i++){ 
     if (this.document.frames[i] != null) { 

PS:我不能使用的getElementById或自的getElementsByTagName在我的代码的iframe是动态创建的。 对不起,我的知识,但我preety新的JavaScript,似乎我们已经尝试了太多的东西:(

非常感谢提前..

+0

'Null' iframes?..? – 2012-03-24 13:20:10

+0

如果iframe是动态创建的,为什么不将它们保存在全局数组中?但是,这只适用于使用'document.createElement'的情况。为你的问题添加一个你的问题的例子,一个[Short,Self Contained,Correct(Compilable),Example](http://sscce.org/)会很棒(你可以使用http:// jsfiddle来发布你的例子)。 – Zeta 2012-03-24 13:27:09

+0

什么是空'iframe? – 2012-03-24 13:30:29

回答

0

,您仍然可以使用getElementbyIdgetElementsByTagName动态添加元素只要您要查找的内容后,他们已被添加到DOM。

换一种方式,如果他们在那个时间点,你找他们存在你只能找到他们。

var iframes = document.getElementsByTagName('iframe'); // notice this is not 'frame' 

var length = iframes.length; 
var currentIFrame; 
var counter; 

for (counter = 0; counter < length; counter += 1) { 
    currentIFrame = iframes[counter]; 

    // do stuff with currentIFrame 
} 

http://jsfiddle.net/fuEsw/

+0

感谢jbabey的帮助,但我正在尝试为我的SAP Portal使用此功能。我有一个函数ABC(),它真的在页面中查找帧,递归函数用于搜索文档中的帧,它是递归的搜索框架内的帧,如果页面没有加载100,该函数可以返回错误,这就是为什么它包含一个忽略错误的try-catch例程。对于每个发现的iframe,onmouseup事件添加如下:this.document.body.onmouseup = updateStatus; – 2012-03-24 14:15:27

+0

@archanachaubey这是一个完全不同的问题,而不是你发布的问题。我建议提出一个新问题,并提供此评论中的信息,以及迄今已尝试的内容。 – jbabey 2012-03-24 14:33:02

相关问题