在帧上注入javascript

时间:2014-07-25 13:42:51

标签: javascript firefox-addon xul function-overriding

我正在开发一个firefox附加组件,我想注入一个覆盖confirm()的javascript函数。该帧是触发confirm()函数的帧,我希望能够始终返回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”事件中的一个函数内(它是一个工具栏,位于浏览器的页脚上)。

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

任何人都可以提供帮助?还有其他想法吗? 谢谢!

1 个答案:

答案 0 :(得分:1)

谁来这里得到答案,我发现了如何做到这一点:

//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);

在顶部窗口中注入脚本创建元素。 这对我有用!