我最近安装了附加软件块,它可以跟踪您在特定网站上浏览的时间,并阻止您超过您为自己设置的限制。
不幸的是,它在阻止网站时显示的页面非常难看,所以我开始着手制作自己的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文档?
答案 0 :(得分:2)
由于插件脚本在沙箱中运行很难(但并非不可能)访问它,因此可能更容易编辑插件并替换您不喜欢更好的html页面。
Addon XPI只是zip文件,主要包含标准网络技术,javascript,CSS,HTML / XML模块化浏览器特定代码。
如果您真的想在不修改插件的情况下执行此操作,则可以使用mutation observers来监视HTML的更改并查找特定于相关插件的html结构。
钓鱼:使用browser toolbox