javascript - 开发 Firefox 扩展时在页面中执行注入(inject)的 Javascript 代码

标签 javascript firefox firefox-addon

我正在开发一个在状态栏中放置一个按钮的 Firefox 扩展。单击该按钮时,扩展程序会将一些 Javascript 注入(inject)当前页面。这个 Javascript 有一个函数,我想用一些参数调用它。我设法注入(inject)了代码,我已经通过 Firebug 检查了页面并验证了 JS 已被注入(inject)。如何从我的扩展程序调用页面中的 Javascript 函数?

--更多信息

这是我用来注入(inject) Javascript 的代码:

var doc = window.content.document;

//Add the script
var visibilityJS = doc.createElement("script");
visibilityJS.setAttribute("type", "text/javascript");
visibilityJS.setAttribute("charset", "UTF-8");
visibilityJS.setAttribute("src", "chrome://visibility/content/scripts/visibility.js");
head.appendChild(visibilityJS);

//Call the function
alert("Executing testfunction");
window.content.document.defaultView.testFunction();

..以及我要注入(inject)的 JS 文件中的代码。即 visibility.js

window.testFunction = function() {
    alert("Message");
}

谢谢。

最佳答案

这成功了。我不知道技术细节。我从 Felix 那里得到了部分解决方案,从 here 那里得到了一部分。 .

window.content.document.defaultView.wrappedJSObject.testFunction();

关于javascript - 开发 Firefox 扩展时在页面中执行注入(inject)的 Javascript 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4215507/

相关文章:

javascript - 使用 ajax 的 Select2 使用 Rails turbolinks 事件进行了多次初始化

firefox-addon - Hook "Open in new tab"和 "Back"

javascript - 编码浏览器扩展、插件、Firefox、Safari、Chrome 等……这可能吗?

javascript - 让 Rails javascript 代码变得干燥

javascript - Angularjs 选择选项设置为第一项不起作用

firefox - 为什么 Google 字体不在 Firefox 上缓存?

firefox - 可以导出 FireFox 扩展和设置吗?

javascript - 当 nsIProcess 的 Firefox 启动失败时如何捕获错误

javascript - 根据前一个输入文本填充第二个输入文本

jquery - 嵌入 Flash 视频的可拖动模式对话框不允许播放视频