私はFirefoxの拡張機能を書いています。基本的に getElementsByClassName を使用して特定のクラスを検索し、ヒットした場合は次を使用してページをリダイレクトしています: gBrowser.loadURI 問題は、マウスの中ボタンでリンクを開くと、そのリンクが背景タブ。したがって、そのページで上記のクラス基準に該当するヒットがあった場合、アクティブなタブがバックグラウンドのタブではなくリダイレクトされますが、これは間違った動作です。したがって、基本的には同様の loadURI 関数を使用したいのですが、現在アクティブなタブではなく、特定のタブに対して使用します。loadURI の代わりに window.location = " http://www.google.com/ " も使用できます。しかし、どういうわけかwindow.locationを使用すると、ffウィンドウのすべてのボタンがフルビューのように消えます。非アクティブなタブをリダイレクトするためのアイデアはありますか?
質問する
164 次
1 に答える
3
次のようなコードを使用していると仮定します (そう思われますが、今後の参考のためにコードを提供してください)。
function pageLoad(event) {
var doc = event.originalTarget;
if (/* doc matches class */) {
gBrowser.loadURI(newURI, ...);
}
}
addEventListener("load", function () {
gBrowser.addEventListener("load", pageLoad, true);
}, false);
リスナーを次のように変更します。
function pageLoad(event) {
var doc = event.originalTarget;
if (/* doc matches class */) {
gBrowser.getBrowserForDocument(doc).loadURI(newURI, ...);
}
}
もちろん、エラー処理を行うのが最適です。
<tabbrowser>
別名gBrowser
を参照してください。そしてbrowser
(それgetBrowserForDocument()
が戻ってきます)。
(私は記憶からこれを行いました。少しいじる必要があるかもしれません)
于 2013-08-27T22:56:12.120 に答える