2012-07-03 33 views
1

我寫了一個瀏覽器擴展與crossrider.com,並通過使用JavaScript代碼的網頁上的框架需要循環,框架對象循環未定義

HTML代碼。 (main.html中)

<frameset rows="85,*, 35"> 
    <frame name="header" src="1.html" scrolling="no" frameborder="no" > 
    <frame name="body" src="2.html" scrolling="auto" frameborder="no"> 
    <frame name="footer" src="3.html" scrolling="no" frameborder="no" > 
</frameset> 

如果我作爲

alert(self.frames.length); 

在此頁面(main.html中)上編寫代碼的它給了我3,如果我做

for(var k = 0; k < self.frames.length ; k++) 
    { 
     var obj = self.frames[k]; 
     // this obj is always object. 
     //and I could do further operation on this as obj.document , 
    } 
然而

如果你寫的crossrider擴展名和

appAPI.ready(function($){ 

var framesLength = self.frames.length; //it also gives 3 
//but if I do below 

for(var k = 0; k < self.frames.length ; k++) 
    { 
     var obj = self.frames[k]; 
     // **this obj is always undefined.** 
    } 

}); 

對解決方案的任何幫助或方向表示讚賞。

+0

你可以給你一個網址,你已經嘗試執行擴展? (與您的示例代碼框架的URL) – gkof

+0

該擴展安裝在瀏覽器本地和我測試本地應用程序,因此我沒有這個URL,但是,如果你去crossrider和複製警報self.frames.length並通過循環每個框架都帶有appAPI.ready函數的警報。在你的瀏覽器上安裝這個擴展(在IE 9上測試)後,你會發現這個帶有框架的main.html頁面對所有框架都沒有定義。 –

回答

0

我確實向crossrider團隊提出了問題。 Crossrider-Support-frames-?

簡單的回答,我從CrossRider員工(Shmueli Ahdut)的一個了,就是CrossRider API不支持框架然而,令人驚訝的是,

self.frames.length 給適當的警報。

我將研究他們對IE的onRequest API的支持。這樣可以很容易地監視http/frame/ajax請求。