在Firefox中使用附加组件的javascript后执行javascript?

时间:2015-02-24 04:13:26

标签: javascript html firefox-addon

我最近安装了附加软件块,它可以跟踪您在特定网站上浏览的时间,并阻止您超过您为自己设置的限制。

不幸的是,它在阻止网站时显示的页面非常难看,所以我开始着手制作自己的html页面。在这个html页面上,除了很多其他的东西之外,还有一个链接可以让你回到你最初要去的页面(如果块已经过期),看起来像这样:

<a id="lbClickHereLink">back</a></br>

然后在附加代码(在文件browser.js中)中设置此lbClickHereLink,如下所示:

    // Update hyperlink to blocked page
    var clickHereLink = doc.getElementById("lbClickHereLink");
    if (clickHereLink != null) {
        clickHereLink.setAttribute("href", blockedURL);
    }

现在我也在其他环境中使用这个html页面(它基本上是一个待办事项列表),我认为只有这个链接才真的很好,如果我真的从那里被阻止了页。 (无论如何它都是空的。)

所以我尝试了这个(在html文档中):

<script>
var leechlink = document.getElementById("lbClickHereLink");
if(leechlink.getAttribute("href") == null)
   leechlink.innerHTML = "";
</script>

但这不起作用,因为在加载html页面时,加载项中的脚本显然尚未执行。所以链接永远不会存在。

所以我的问题是:

是否可以在执行加载项的代码后让上面的脚本执行

关于教导人对鱼的注意事项:我可以让firefox调试器向我显示在页面上执行的所有javascript代码,而不仅仅是在HTML文档?

1 个答案:

答案 0 :(得分:2)

由于插件脚本在沙箱中运行很难(但并非不可能)访问它,因此可能更容易编辑插件并替换您不喜欢更好的html页面。

Addon XPI只是zip文件,主要包含标准网络技术,javascript,CSS,HTML / XML模块化浏览器特定代码。

如果您真的想在不修改插件的情况下执行此操作,则可以使用mutation observers来监视HTML的更改并查找特定于相关插件的html结构。

钓鱼:使用browser toolbox