在暂存器中调试Firefox加载项会在以下情况下返回一些错误:
考虑以下Get Cursor Position
:
Components.utils.import("resource://gre/modules/ctypes.jsm");
var lib = ctypes.open("user32.dll");
/* note: if you go to GetCursorPos page on MSDN, it says first argument is of structure POINT, so lets create that structure,
* the link here shows that that x and y are type Long which is ctypes.long
*/
// https://msdn.microsoft.com/en-us/library/windows/desktop/dd162805%28v=vs.85%29.aspx
var POINT = new ctypes.StructType("tagPOINT", [
{ "x": ctypes.long },
{ "y": ctypes.long }
]);
/* Declare the signature of the function we are going to call */
var GetCursorPos = lib.declare('GetCursorPos',
ctypes.winapi_abi,
ctypes.bool,
POINT.ptr
);
/* Use it like this */
var point = POINT();
var ret = GetCursorPos(point.address());
Components.utils.reportError(ret);
Components.utils.reportError(point);
lib.close();
使用更好的示例或其他内容编辑和完成问题的任何帮助都将不胜感激。
答案 0 :(得分:1)
对于SDK插件,我建议改为使用jpm watchpost + extension auto installer。
每次保存文件时,这将自动创建一个xpi并在浏览器中重新安装。只需保持浏览器控制台打开,就可以获得任何潜在的错误输出。
与其他网页(即内容脚本)进行互动
浏览器工具箱的暂存器可以选择执行它的目标环境
使用require
在Chrome上下文中,可以通过let { require } = Cu.import("resource://gre/modules/commonjs/toolkit/require.js")
如果您使用插件调试器,我认为插件的要求应该可用