Firefox内でタブの再利用に関するチュートリアルを行いましたが、今では拡張機能がうまく機能しています。しかし、私はまた、(いくつかのアプリケーション、スタートメニューなどから)外部から開いているタブを再利用する必要があります。これはどうすればいいですか?Firefox、TabOpenイベントなどでタブを再利用する
「について:ブランク」である私はTabOpenイベントのイベントリスナーを追加してみましたが、私は
event.target.linkedBrowser.currentURI.spec
をログインしたときにそれが値です。私はアドレスバーに入力した実際のアドレス(新しいタブで自動的に開きます)または他のアプリケーションから開いているアドレスを期待していました。そのタブをすぐに閉じることができます。私は間違って何をしていますか?
ありがとうございます。
念のため、ここに新しいタブが延長
function openAndReuseOneTabPerURL(url) {
var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
.getService(Components.interfaces.nsIWindowMediator);
var browserEnumerator = wm.getEnumerator("navigator:browser");
// Check each browser instance for our URL
var found = false;
while (!found && browserEnumerator.hasMoreElements()) {
var browserWin = browserEnumerator.getNext();
var tabbrowser = browserWin.getBrowser();
// Check each tab of this browser instance
var numTabs = tabbrowser.browsers.length;
for(var index=0; index<numTabs; index++) {
var currentBrowser = tabbrowser.getBrowserAtIndex(index);
if (url == currentBrowser.currentURI.spec) {
// The URL is already opened. Select this tab.
tabbrowser.selectedTab = tabbrowser.mTabs[index];
// Focus *this* browser-window
browserWin.focus();
found = true;
break;
}
}
}
// Our URL isn't open. Open it now.
if (!found) {
var recentWindow = wm.getMostRecentWindow("navigator:browser");
if (recentWindow) {
// Use an existing browser window
recentWindow.delayedOpenTab(url, null, null, null, null);
}
else {
// No browser windows are open, so open a new one.
window.open(url);
}
}
}
ありがとう、私はそれが可能な解決策かもしれないと考えました。それは私が望んでいたものではありません。タブは短時間オープンしています(同じアドレスの別のタブが存在する場合は閉じた直前です)。 –
かなり速くなければなりません。約:空白は非常に速く消え去るでしょう。スピードが気になる場合は、DOMContentLoadedを使用します。 – sdwilsh
まさに私がやったことだが、それでも短い時間でそのタブを見ることができる。私が本当に必要とするのは、 "PreTabOpen"イベントのようなものです(私はそれができる方法について別のアドバイスを得ましたので、ここでもっと助けを求める前にそれを試してみます)。 –