在转到Mozilla Firefox中的JavaScript引擎之前拦截JavaScript

时间:2014-02-04 05:01:50

标签: javascript dom browser firefox-addon mozilla

我想开发一个扩展,它适用于来自HTTP响应的脚本。我知道整个HTML代码首先在浏览器中渲染引擎,在其中解析它以创建DOM树。嵌入内部的任何脚本都会传递给JavaScript引擎。(如果我错了,请纠正我。:)) 因此,我希望在将JavaScript代码发送到JavaScript引擎之前拦截它们,以便相应地修改它们。

是否有适用于Mozilla Firefox的API可以让我这样做?我该怎么办?

5 个答案:

答案 0 :(得分:1)

您可以follow this answer on how to intercept each request and modify将其发送到页面本身。你可以做翻译或者你想要的任何东西。

答案 1 :(得分:1)

在做一些事情时我偶然发现了这个: https://developer.mozilla.org/en-US/docs/XPCOM_Interface_Reference/NsITraceableChannel?redirectlocale=en-US&redirectslug=NsITraceableChannel

这允许您在解析之前修改内容。在这里看到这个主题: http://forums.mozillazine.org/viewtopic.php?f=19&t=2800541

这是一个在向用户显示内容之前获取内容的工作示例。虽然它没有改变它,这就是我在mozillazine话题中提出的问题。 writeBytes应该修改它,一旦你搞清楚,请分享我感兴趣的 https://github.com/Noitidart/demo-nsITraceableChannel

答案 2 :(得分:0)

看看这个家伙的插件代码。他完全按照你的意愿行事: https://addons.mozilla.org/en-US/firefox/addon/javascript-deminifier/

答案 3 :(得分:0)

您可以在解析HTML之前尝试入侵并获取所有标记,使用它们并将其放回去。

答案 4 :(得分:0)

  

...我想在Javascript引擎之前拦截这些javascript代码并相应地修改它们。有没有适用于mozilla firefox的API?我该怎么办?

您可以通过设置contentScriptWhen: "start"

来使用Addon-SDK的page-mod

然后,在完全阻止文档被解析后,您可以在侧面获取相同的文档,进行任何修改并在页面中注入生成的文档。这是一个只有https://stackoverflow.com/a/36097573/6085033

的答案