Firefox用スクリプト「重複タブを閉じる」
gBrowserのリファレンスを探すのに苦労した・・・。
あと、gBrowser.removeTab(target);って書くと怪しい挙動をして、相当ハマった。
removeTab()の引数は tab だから、browser を渡しちゃイカンよね。
// URLのアンカー指定を除く function getPlaneUrl(url){ url = url.replace(/#.*/, ''); return url; } //重複タブを閉じる var tabs = gBrowser.mTabContainer.childNodes; for (var i = 0; i < tabs.length; i++) { var base = gBrowser.getBrowserForTab(tabs[i]); var url = getPlaneUrl(base.currentURI.spec); var targets = gBrowser.mTabContainer.childNodes; for (var j = targets.length - 1; i < j; --j) { var target = gBrowser.getBrowserForTab(targets[j]); if (url == getPlaneUrl(target.currentURI.spec)) { gBrowser.removeTab(targets[j]); } } }
修正履歴:
・アンカー指定でのURL違いは無視するようにした。
(Getパラメタ指定でのURL違いは・・・、区別したほうがいい気がする。)
【参考URL】
タブブラウザ用コード - MDC
tabbrowser - MDC