[英]How to execute javascript code in the namespace (scope) of the webpage, from a firefox extension?
我正在寻找一种干净的方法来通过firefox扩展从firefox中的网页调用/执行/重新定义javascript代码。 我的临时解决方案是使用暂存器(Shift-F4,Ctrl-A,Ctrl-V,Ctrl-R),它可以正常工作,但很可悲。 Greasemonkey将是我的最后选择,非常非常最后。
到目前为止的代码:
main.js:
exports.main = function() {
var data = require("self").data;
var pageMod = require("page-mod");
pageMod.PageMod({
include: "*.google.com",
contentScriptFile: data.url("my-script.js")
});
};
我-的script.js
$('#mydiv').html('yo')
alreadyHere.sayHello=function (){alert('Bonjour');}
此代码在my-script.js的#1行暂停,提示未定义$。 名称空间/范围的问题。
我如何从扩展名开始在网页的命名空间/范围内工作,就像在便签本上一样?
编辑: firefox主窗口的window.content和网页中的Here.sayHello之间应该存在链接,对吗?
window.content.(things).alreadyHere.sayHello();
我在这里想念什么?
地狱呀。
window.content.document.defaultView.wrappedJSObject.$('#mydiv').html('yo')
window.content.document.defaultView.wrappedJSObject.alreadyHere.sayHello();
感谢Mridang Agarwalla 在这里
您是否在Firebug控制台中尝试过?
并且,
确保您的代码在
$(document).ready(function () {
//your code here
});
最重要的jQuery已正确加载
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.