2012-03-24 89 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

相關問題