Firefox 在加载项和内容中使用相同的文件

Firefox 在加载项和内容中使用相同的文件,firefox,firefox-addon,firefox-addon-sdk,Firefox,Firefox Addon,Firefox Addon Sdk,我有一个脚本,我想在两个方面都使用,附加部分和内容方面。问题在于内容和附加脚本驻留在不同的文件夹中(分别是数据和库) 如何从lib访问数据脚本,或者从lib访问数据脚本?您所问的很可能是不可能的。即使是这样,考虑到插件和内容代码的细致分离,它也需要大量丑陋的黑客 但是取决于你的代码的功能(数字运算?),也许你可以利用工人。这几乎是在中提出的同一个问题,所以我将重新表述我在那里给出的答案 将文件放入/lib/文件夹,然后通过以下方式获取文件的资源url: var url=require("sdk/

我有一个脚本,我想在两个方面都使用,附加部分和内容方面。问题在于内容和附加脚本驻留在不同的文件夹中(分别是数据和库)


如何从lib访问数据脚本,或者从lib访问数据脚本?

您所问的很可能是不可能的。即使是这样,考虑到插件和内容代码的细致分离,它也需要大量丑陋的黑客


但是取决于你的代码的功能(数字运算?),也许你可以利用工人。

这几乎是在中提出的同一个问题,所以我将重新表述我在那里给出的答案

将文件放入
/lib/
文件夹,然后通过以下方式获取文件的资源url:

var url=require("sdk/self").data.url("../lib/shared-file.js");
拥有此url后,可以通过
contentScriptFile
参数将其附加到选项卡或弹出窗口

注意:您需要检查当前所处的环境,以确定是否需要添加对
exports
对象的任何引用,以便从加载项中访问它们

if(typeof(exports)!="undefined"){
  exports.something=function(){...};
}

我认为你是建筑师的问题。你想具体做什么?我正在移植一个chrome扩展。我有一个脚本,我在插件和内容端都使用它。我不想每次都在两个地方编辑它,我想在同一个地方包含它两次。太简单了,我印象深刻!正是我需要的!