javascript - 如何使用 Firefox 扩展将 JavaScript 函数注入(inject)所有网页

标签 javascript firefox firefox-addon greasemonkey

我正在开发一个 Firefox 插件。我想要做的是注入(inject)自定义 JavaScript 函数。

function foo() {..}

因此所有页面都可以调用 foo 而无需先定义它。

我看过其他答案,例如:http://groups.google.com/group/greasemonkey-users/browse_thread/thread/3d82a2e7322c3fce

但需要在网页上进行修改。如果我想将函数 foo 注入(inject) Google.com 怎么办?有可能吗?

我可以使用用户脚本来完成,但我想尽可能使用扩展方法。

最佳答案

在阅读您的问题时,我首先想到的是“这看起来像是一个骗局”。你想达到什么目的?

无论如何,这里是a Jetpack (Add-on builder) add-on that injects a script in every page loaded :

ma​​in.js:

const self = require("self"),
      page_mod = require("page-mod");

exports.main = function() {
    page_mod.PageMod({
        include: "*",
        contentScriptWhen: "ready",
        contentScriptFile: self.data.url("inject.js")
    });
};

注入(inject).js:

unsafeWindow.foo = function() {
    alert('hi');
}

unsafeWindow.foo();

关于javascript - 如何使用 Firefox 扩展将 JavaScript 函数注入(inject)所有网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8872152/

相关文章:

javascript - Node.js:导出模块不起作用

javascript - 随机歌曲循环不适用于功能

Javascript - 检查文本/模板脚本中是否存在字段

javascript - 如何从 Firefox 附加 SDK 扩展启动正常下载

html - firefox css 选项样式不起作用

javascript - Firefox Addon 添加了一个 div/iframe 但无法设置 innerHTML/src

javascript - Firefox 插件 (JPM) - 如何将消息从面板的脚本传递到内容脚本?

javascript - 如何检测元素可见性(z-index、固定、不透明度等)(Intersection Observer V2 替代方案)

javascript - Firefox window.controllers 已弃用。不要将其用于 UA 检测

javascript - 如何在 Firefox Add-on SDK 中将面板位置更改为鼠标位置