私はいくつかの chrome/firefox 拡張機能に取り組んでおり、達成したいのは、これら 2 つの間でできるだけ類似した UX を実現することです。chrome では (manifest.json を介して) chrome://newtab をオーバーライドするように登録できますが、firefox ではそれほど簡単な作業ではないことは既に理解しています。私がFirefoxで達成したいのは、ユーザーがブラウザのアクションボタンをクリックすると、ローカルのHTMLページで新しいタブが開くことです。このコードはまさにそれを行います:
var buttons = require('sdk/ui/button/action');
var tabs = require('sdk/tabs');
var wuntils = require('sdk/window/utils');
var handleClick = function (state) {
tabs.open({
"url": "./pages/index.html",
"isPinned": false
});
};
var button = buttons.ActionButton({
id: "mozilla-link",
label: "Visit Mozilla",
icon: {
"16": "./assets/logo.png",
"32": "./assets/logo.png",
"64": "./assets/logo.png"
},
onClick: handleClick
});
このアプローチの問題は、新しいタブが開かれると、アドレスバーに resource://.... URL が表示されることです。他のいくつかの拡張機能がそれを削除してアドレスバーを空のままにしているのに気付きましたが、tab.urlプロパティを変更しようとするとリダイレクトループが始まります...
新しいタブのように見せながら、アドレスバーを空のままにする方法はありますか?
ありがとう!