我是Firefox扩展新手,这就是我使用Add On SDK的原因。
我想创建一个扩展程序,每次用户打开新标签页时都会显示特定网站。到目前为止,这是我的代码:
var self = require("sdk/self");
var tabs = require("sdk/tabs");
// Listen for tab openings.
tabs.on('open', function onOpen(tab) {
getActiveTab();
});
function getActiveTab(){
tabs.on('activate', function (tab) {
tab.url = "http://www.example.com";
});
}
这很有效。但在加载指定的域之前,它会加载Firefox默认的newtab页面。现在是否有API参考来访问newtab设置并更改为example.com?
谢谢,
格尔德
答案 0 :(得分:2)
可以使用SDK更改about:newtab
网址:
require('sdk/preferences/service').set('browser.newtab.url', 'http://www.stackoverflow.com');
但是它变得 已经过时了FF41 ,因为不再有browser.newtab.url
首选项。
如果您仍打算使用它,您也可以考虑将其添加到您的代码中:
var { when: unload } = require('sdk/system/unload');
var reason;
unload( function ( reason ) {
require('sdk/preferences/service').set('browser.newtab.url', 'about:newtab');
});
以便 在加载项卸载后撤消首选项更改 。您还可以将其中一个卸载原因传递给该功能:'uninstall'
,'disable'
,'shutdown'
,'upgrade'
或'downgrade'
,或者不提供{{1}完全没有参数/保持未定义。
答案 1 :(得分:2)
由于browser.newtab.url
首选项已被删除,因此这是执行此操作的新方法:https://github.com/sblask/firefox-open-tabs-next-to-current/blob/master/lib/helpers.js#L50可以在此处找到模块的代码:https://dxr.mozilla.org/mozilla-central/source/browser/modules/NewTabURL.jsm
如果您还想更换主页,则必须更改browser.startup.homepage
首选项。