我已经使用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请求的访问就可以轻松地进行监控。