我正在开发一个 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/