我已经使用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>


如果我在此页面(Main.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 ,
    }


但是,如果您编写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.**
    }

});


任何帮助或解决方案的方向表示赞赏。

最佳答案

我确实向跨骑团队提出了问题。
Crossrider-Support-frames-?

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

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

我将研究他们对IE对onRequest API的支持。这样一来,http / frames / ajax请求的访问就可以轻松地进行监控。

07-24 15:12