javascript 中的框架对象循环是未定义的

Frames object loop in javascript is undefined

本文关键字:未定义 循环 框架 javascript 对象      更新时间:2023-09-26

我已经用 crossrider.com 编写了一个浏览器扩展,需要使用javascript代码遍历页面上的框架,

网页代码。(主要.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>

如果我在此页面(主.html)上编写代码为

alert(self.frames.length);

它给了我 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 ,
    }

但是,如果您编写交叉骑手扩展并执行相同的操作

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.**
    }
});

感谢任何帮助或解决方案的方向。

我确实向交叉骑手团队提出了问题。交叉骑手-支持-框架-?

我从CrossRider的一位员工(Shmueli Ahdut)那里得到的快速答案是CrossRider API不支持框架,但令人惊讶的是

self.frames.length 发出了适当的警报。

我将研究他们对IE的onRequest API的支持。 因为这样就可以轻松监控帧/Ajax请求的HTTP。