我正在为多种浏览器制作附加模块,包括Chrome和Firefox。
我刚刚使用Chrome完成了我想要的操作:覆盖新的标签网址以加载包含manifest.json
的HTML文件。很简单。 (现在我可以再次复制粘贴:)):
...
"chrome_url_overrides" : {
"newtab": "override.html"
},
...
当用户创建一个新的空白选项卡时,它会覆盖默认页面并加载我想要的文件:override.html
,具有相同的行为(地址栏中没有URL)。
但是现在,我希望使用附加SDK对Firefox 做同样的事情。我尝试使用browser.newtab.url
:
var { get, set } = require("sdk/preferences/service");
var { when: unload } = require("sdk/system/unload");
var oldValue = get("browser.newtab.url");
set("browser.newtab.url", 'http://www.example.com');
// Restore old setting when unload
unload(function() {
set("browser.urlbar.autoFill", oldValue);
});
它有效,但是我真的能够加载一个HTML文件,而不是给它一个新的URL(代码更易于维护)并保持一个干净的地址栏。
有什么想法吗?