gpt4 book ai didi

javascript - 火狐扩展。如何捕捉 onload 事件?

转载 作者:数据小太阳 更新时间:2023-10-29 04:30:36 24 4
gpt4 key购买 nike

所以..得到了 firefox 的可编写脚本的扩展。它是 somelika 一个 webspider,用 javascript 编写。我想做什么:

我希望它加载一个页面,他们做一些工作,然后转到另一个页面(使用加载页面中的 url)。加载新页面后 - 蜘蛛会做同样的工作。

算法有点像这个:

  1. 等待页面加载完毕
  2. 做一些工作
  3. 选择一个不同的网址
  4. 转到此网址
  5. 转到 1.

在我的主要功能中,我执行以下代码:

gBrowser.addEventListener("DOMContentLoaded",haXahv8, false); 

在我转到另一个页面之前一切正常...我如何在我的 firefox 扩展中重用 DOMContentLoaded 事件?所以,问题是:是否可以在不同页面的 firefox 扩展中重用 load/DOMContentLoaded 事件?如果是那么怎么办?

p.s.\早些时候我正在解决这个问题,他们使用 Windows 窗体和网络浏览器 + C++...哦,那是什么时候...一个梦想!因为一切正常=)

最佳答案

您应该只需要注册一次该事件,并且每次浏览器选项卡触发它时您都应该收到它。

如果您在将事件监听器添加到 gBrowser 元素之前等待 XUL 窗口触发其 load 事件,您的代码应该可以正常工作。如果您在此之前添加事件监听器,则 gBrowser 尚未初始化,并且行为未定义。

这是一个例子:

window.addEventListener('load', function () {
gBrowser.addEventListener('DOMContentLoaded', function () {
// stuff that happens for each web page load goes here
}, false);
}, false);

请注意,实际上我只能确定这适用于 Firefox 3.5 及更高版本。我写了一个扩展(在我公司内部),它可以为 Firefox 1.5 到 3.5 可靠地完成这种事情,但不幸的是它比上面的解决方案更复杂(幸运的是)更健壮。如果您需要 Firefox 3.5+ 以上版本的支持,请告诉我,我会提供更多信息。

这里有一些补充阅读:

关于javascript - 火狐扩展。如何捕捉 onload 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1983654/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com