【发布时间】:2026-02-07 17:30:01
【问题描述】:
我用 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.**
}
});
感谢任何帮助或解决问题的方向。
【问题讨论】:
-
您能提供一个您尝试在其中执行扩展的网址吗? (带有框架集的网址,如您的示例代码)
-
扩展安装在本地浏览器上,我正在测试本地应用程序,因此我没有这个的 URL,但是如果你去 crossrider 并复制警报 self.frames.length 并循环遍历每个帧带有 appAPI.ready 功能的警报。在您的浏览器上安装此扩展程序后(我正在 IE 9 上进行测试),您将看到带有框架的 main.html 页面为所有框架提供未定义的内容。
标签: javascript jquery frames browser-extension crossrider