Javascript firefox引导加载项:未执行安装事件
我正在尝试创建一个引导加载项,它只是将安装时的新选项卡url设置为一个新值,并在卸载时将其重置为旧值 这是我的bootstrap.js。我认为install函数引发了一个异常,因为没有定义require,但我不确定调试器是否在正确的范围内执行我在Scratchpad中编写的代码 我在某个地方读到,引导扩展的api与附加sdk的api相同,因此要求应该是合适的。如果不是这样的话,请您引导我到一个页面,描述我可以在bootstrap.js中使用的代码,我没有找到任何内容:(Javascript firefox引导加载项:未执行安装事件,javascript,firefox,firefox-addon,firefox-addon-sdk,Javascript,Firefox,Firefox Addon,Firefox Addon Sdk,我正在尝试创建一个引导加载项,它只是将安装时的新选项卡url设置为一个新值,并在卸载时将其重置为旧值 这是我的bootstrap.js。我认为install函数引发了一个异常,因为没有定义require,但我不确定调试器是否在正确的范围内执行我在Scratchpad中编写的代码 我在某个地方读到,引导扩展的api与附加sdk的api相同,因此要求应该是合适的。如果不是这样的话,请您引导我到一个页面,描述我可以在bootstrap.js中使用的代码,我没有找到任何内容:( 普通引导加载项不会自动访
普通引导加载项不会自动访问SDK,即没有
require
nsIPrefBranch
,Services.jsm
,等等普通引导加载项不会自动访问SDK,即没有
require
nsIPrefBranch
,Services.jsm
,等等你问: 您如何知道Services.prefs.getCharPref方法
我回答说: 我首先导入Services.jsm模块,然后查看MDN的所有功能: 然后我看到
prefs
然后它链接到nsIPrefBranch
,并记录了所有内容。nsIPrefBranch2
已被弃用,所以我知道它不是这样
MDN是您的朋友:)
发件人:
在bootstrap中,您无法访问sdk之类的东西。我不知道如何访问那些东西
但我做的正是你想要的本地化:D花了大约10分钟:D
注意:在卸载过程中,本地化文件不可用的怪癖。所以在测试ADDON_DISABLE的区域时,我不得不将它移到Shutown程序。文件在卸载中不可用是有道理的
你问: 您如何知道Services.prefs.getCharPref方法
我回答说: 我首先导入Services.jsm模块,然后查看MDN的所有功能: 然后我看到了
prefs
,然后它链接到nsIPrefBranch
,并记录了所有内容nsIPrefBranch2
已被弃用,所以我知道不是这样
MDN是您的朋友:)
你有一个解决办法:你还在寻找更多吗?或者这个问题已经解决了?很抱歉反应时间太长-是的,这个问题已经解决了。再次感谢!如果你也在这里添加答案,我会将其标记为solutionok cool no problem:)你在这里找到了解决方案:你还在寻找更多吗?或者这个问题已经解决了?很抱歉反应时间太长-是的,这个问题已经解决了。再次感谢!如果你也在这里添加答案,我会将其标记为solutionok cool no problem:)
function startup(data, reason){
}
function shutdown(data, reason){
}
function install(data, reason){
var prev_new_tab_url = require("sdk/preferences/service").get("browser.newtab.url");
var data = require("sdk/self").data;
var url = data.url("startpage.html");
require("sdk/preferences/service").set("browser.newtab.url", url);
var ss = require("sdk/simple-storage");
ss.storage.prev_new_tab_url = prev_new_tab_url;
}
function uninstall(data, reason){
var ss = require("sdk/simple-storage");
var prev_new_tab_url = ss.storage.prev_new_tab_url;
require("sdk/preferences/service").set("browser.newtab.url", prev_new_tab_url);
}