人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

WindowsXPでFirefox3をインストールして使用してみているのですが、Tab Mix Plus0.3.6.1.080416とSBMカウンタ0.3.1を併用すると、Ctrl+F4でタブを閉じようとするときに、隣のタブまで閉じてしまいます。
設定ミスかと思いアドオンの設定を見てみましたが、特に原因が見あたらないので困っています。併用するにあたってこうしたらよい、という解決方法を教えて下さい!

1214440676
●拡大する


●質問者: bookshelves
●カテゴリ:インターネット ウェブ制作
✍キーワード:F4 SBM Tab Mix Plus WindowsXP アドオン
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● Sheile
●80ポイント

普段Ctrl+F4を押さないので気づかなかったのですが、確かに症状が出ますね・・・

色々と試しているうちに偶然解決(?)出来たので回答を。

あくまで対処療法 & 慣れてないと結構面倒なのでご了承の上どうぞ。


以下、Firefoxのインストールフォルダを$FIREFOX_HOMEとします。

FireFoxを終了した状態でお試しアレ。


1. $FIREFOX_HOME/chrome/browser.jarを解凍

jarファイルはzipと同等な為、Lhaplus等の解凍ソフトで解凍可能です。


2. content/browser/tabbrowser.xmlを編集

2406行:

document.addEventListener("keypress", this._keyEventHandler, false);

// document.addEventListener("keypress", this._keyEventHandler, false);

3. 再圧縮

cd $FIREFOX_HOME/chrome
jar -c0f browser.jar content

jarコマンドはJDKが入っていないと使えないのでその場合はLhaplusで再圧縮でもいけるかも。

圧縮は多少ではあるが起動時の速度低下に繋がるのでJDKを入れてみるのも一つの手。

(jarコマンドに-0パラメータをつけると圧縮せずにアーカイブだけを行います)


以下なんとなくな解説/感想。


F4押下時の閉じるロジックは2333行目辺りからの以下の呼び出しと思われ。

(ためしにこれをコメントアウトすると押しても閉じないように)

this.tabbrowser.removeCurrentTab();

この_keyEventHandlerメソッドをaddEventListenerしているのが今回変更した2406行目。

addEventListenerをコメントアウトした場合も閉じなくなると思ったのだが、なぜか正常にタブ一枚だけが閉じられる。(→回答できるじゃん!)

TabMixPlusを無効化すると、想定どおり閉じなくなる。


ということで、TabMixPlus/chrome/tabmixplus.jarを覗いてみた所、以下のようなコードが。

 if ("_keyEventHandler" in gBrowser.mTabBox)
 gBrowser.mTabBox._eventNode.removeEventListener("keypress", gBrowser.mTabBox._keyEventHandler, false);
 else // we are after Bug 156459 fixed (2007-11-15)
 gBrowser.mTabBox._eventNode.removeEventListener("keypress", gBrowser.mTabBox, false);
 browser.addEventListener("keydown", this, true);
 browser.addEventListener("keypress", this, true);
 browser.addEventListener("keyup", this, true);

詳細は追ってないですが、なんかTMPから_keyEventHandler解除して置き換えてるようですねぇ。

SBMカウンタが入っていると、この解除に失敗でもするのか??


本体の_keyEventHandlerと、TMPの上記ソースで追加しているOnKeyPress(2509行辺り)が両方発動でもしてるのかなぁ。

◎質問者からの返答

丁寧な調査、ありがとうございます。


2 ● falcon2
●0ポイント

たぶんまだ3に対応してないんだと思います。

http://www

◎質問者からの返答

有難うございます。

ただ、解決方法を尋ねているので、ご回答は私が求めている内容とは違うようです。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ