javascript - 在框架上注入(inject) javascript

标签 javascript firefox-addon xul overriding

我正在开发一个 Firefox 附加组件,我想注入(inject)一个重写 inform() 的 JavaScript 函数。该框架是触发确认()函数的框架,我希望能够始终对此返回 true。

我尝试过这个:

var spt = document.createElement("script");
spt.innerHTML = "window.frames['the_frame'].window.confirm = function(msg, cb){return true;};";
window.content.document.head.appendChild(spt);

此代码位于我的扩展程序的“onclick”事件中的函数内(它是浏览器页脚上的工具栏)。

但是这样,似乎可以在浏览器的控制台上工作,但是当我单击按钮时,注入(inject)可以工作,但确认()函数没有被覆盖。

有人可以帮忙吗?还有其他想法吗? 谢谢!

最佳答案

对于来这里寻求答案的人,我找到了如何做到这一点:

//Initialize the window content
var doc = window.content.document;

//Create a script element
var spt = doc.createElement("script");
//Add a script overriding the confirm ON the frame
spt.innerHTML = "window.frames['the_frame'].confirm = function(msg){return true;};";

//Inject javascript
window.content.document.head.appendChild(spt);

将脚本创建的元素插入顶部窗口。 这对我有用!

关于javascript - 在框架上注入(inject) javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24957179/

相关文章:

javascript - 在 html 页面之间传递表单

javascript - 最初我连接到phonegap的数据库,但是当我移动到第二个html页面时我无法连接

javascript - 将选项值附加到隐藏字段?

javascript - 当不知道父变量时拒绝 promise

javascript - Firefox 插件内的网站

c++ - 创建 GStreamer XUL 元素?

javascript - 如何用 Jest 模拟 knex 计数

linux - PID 启动过程污染

javascript - 来自 WebExtensions 选项页面的 HTTP 请求不起作用

javascript - 如何访问新打开的选项卡的窗口对象? [在 Firefox 扩展中]