我不明白其中的区别.我能看到的唯一区别是PageMod使用匹配模式,而Page使用特定的URL.为什么不只是使用PageMod(更通用)的一切?
这是我正在做的简化代码示例.
foo.js(在lib目录中):
exports.foo = function foo() {
this.bar = function() {
console.log("foobar!");
};
};
Run Code Online (Sandbox Code Playgroud)
main.js:
var foo = require("foo");
exports.main = function(options, callbacks) {
foo.bar();
}
Run Code Online (Sandbox Code Playgroud)
CMD:
>cfx run
[...]
error: An exception occurred.
[...]
TypeError: foo.bar is not a function
Run Code Online (Sandbox Code Playgroud)
所以基本上,我似乎无法对我导入的模块做任何事情.我在这里做错了吗?我尝试用几种不同的方式格式化foo()函数,但它们似乎都没有做任何事情.
谢谢!
我正在构建一个firefox插件,并希望设置自定义HTTP标头.我已经完成了一些谷歌搜索,发现从Firefox扩展中设置HTTP标头 但是我无法使其正常工作.
我已经尝试将它放在我的main.js中,当它在我的一个内容脚本中不起作用时.
而在main.js中,整个插件停止工作,虽然无法从中获得明确的错误.在内容脚本中,该脚本停止工作.
有人可以帮忙吗?
我为Firefox制作了一个插件,它与最新版本配合使用.我的问题是我想让它适用于所有版本的Firefox.我怎样才能做到这一点?
信息:
javascript firefox compatibility firefox-addon firefox-addon-sdk
我想添加一个新的搜索引擎,显示在firefox导航栏中显示的搜索栏的下拉列表中.当用户通过我的扩展程序的首选项设置它时,将其设置为默认的searchEngine.
对于非重新启动的扩展,通过XUL,我们使用Components来执行以下操作:
Cc["@mozilla.org/browser/search-service;1"].getService(Ci.nsIBrowserSearchService).addEngineWithDetails(...); //Adds a new search engine
Cc["@mozilla.org/browser/search-service;1"].getService(Ci.nsIBrowserSearchService).currentEngine = ...; //sets the current search engine value.
Run Code Online (Sandbox Code Playgroud)
如何在使用Firefox addon-sdk创建的无重启扩展中执行类似的操作?我看到的一个问题是没有稳定的API来获取和设置在'about:config'中列出的firefox首选项.但即使我使用此处记录的不稳定偏好服务,我也无法通过扩展来进行默认搜索引擎更改.请帮忙!
我在数据文件夹中有一个图像:data\img\myimage.jpg.我想在内容脚本中引用它.更重要的是,我想通过将那个图像放在那里来改变主页的DOM(注入内容脚本的页面).
我试着按照Jeff在这里说的那样:http://blog.mozilla.org/addons/2012/01/11/sdk-1-4-known-issue-with-hard-coding-resource-uris/(因为我没有找到任何其他参考的问题),但没有任何效果.
我需要在页面中使用的URL是什么,以便从附加组件的文件夹中引用图像?
我们使用Web IDE创建插件.我的test.dll位于数据文件夹中.如何通过js-ctypes加载它?
像"c:\ test.dll"这样的绝对路径没有问题,但我不能用这个路径来分发它.
var lib = ctypes.open("c:\\test.dll");
// works but how i get path to addon inner data directory?
Run Code Online (Sandbox Code Playgroud) 使用SDK制作对话框的正确方法是什么(不是固定在附加栏上,而是以屏幕为中心显示)?似乎没有任何API可用于此重要功能.我确实看到windows/utils了,open但我有两个问题:
window/utils" open()对话框,我不知道如何将附加内容脚本,这样我就可以在某种程度上提示响应用户交互(并且可以响应),ALA特权的行为,postMessage或port.emit(无需再次,直接使用chrome privs).我的扩展程序已将CSS文件保存到用户的配置文件目录中.现在,我想将这个CSS文件加载到一个窗口中.
sheetheet/utils似乎有一个loadSheet(window,uri,type)方法(https://developer.mozilla.org/en-US/Add-ons/SDK/Low-Level_APIs/stylesheet_utils)但我不能弄清楚如何将我的CSS文件路径转换为预期的URI对象.
我的代码是这样的:
const ssutils = require("sdk/stylesheet/utils"),
windows = require("sdk/windows");
var path_to_file = "c:\users\myname\appdata\local\temp\tmppr9imy.mozrunner\myextension\mycssfile.css"
for (let wind of windows.browserWindows) {
// What is the magic function I need to use?
ssutils.loadSheet(wind, someMagicFunctionHere(path_to_file), "user");
}
Run Code Online (Sandbox Code Playgroud) 使用firefox插件(javascript)我正在尝试向服务器发送POST请求以获取会话ID,但是传统方法似乎都没有用,我已经尝试过xmlhttprequest并且无法使用表单获取它是因为它是内部代码.有没有办法让这个工作,甚至使用插件SDK?
参考我的尝试: