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.**
}
});
對解決方案的任何幫助或方向表示讚賞。
你可以給你一個網址,你已經嘗試執行擴展? (與您的示例代碼框架的URL) – gkof
該擴展安裝在瀏覽器本地和我測試本地應用程序,因此我沒有這個URL,但是,如果你去crossrider和複製警報self.frames.length並通過循環每個框架都帶有appAPI.ready函數的警報。在你的瀏覽器上安裝這個擴展(在IE 9上測試)後,你會發現這個帶有框架的main.html頁面對所有框架都沒有定義。 –