Firefox で「右ダブルクリック」を「リンクを新しいタブで開く」に関連付ける方法を教えてください。

回答の条件
  • 1人5回まで
  • 登録:2007/06/20 13:57:08
  • 終了:2007/06/21 11:05:13

回答(4件)

id:tully No.1

tully回答回数40ベストアンサー獲得回数32007/06/20 14:42:01

ポイント30pt

えのかた Firefoxで右ダブルクリック

userChrome.jsという拡張機能をインストール後、上記サイトで公開されている6行のスクリプトを書いてあげると実現できるそうです。

id:sample2

マウスの中ボタンが壊れてしまったので、以前、中ボタンのないマウスを使っていた頃の Sleipnir のカスタマイズ設定を久々に使っています。消すこともないだろうと思って残していたのですね。Sleipnir はそれでいいのですが、Firefox で困ってしまったわけです。

ぽすれんにはトリプルコースというのがありますが、私はトリプル×2にしたかった。アカウントを2つ作ればいいだけなのですが、ログイン・ログアウトを繰り返すのが面倒くさい。それで Sleipnir と Firefox を使っています。Opera を久しぶりに使ってみようかな。

その他、iza とはてなと Gmail と他にもいろいろなサービスでふたつのアカウントを持っていて、ブラウザで分けているのです。右ダブルクリックでリンクを新タブで開く操作が片方でできて、他方でできないのは、予想以上にストレスになりますね。

2007/06/21 10:39:56
id:tully No.2

tully回答回数40ベストアンサー獲得回数32007/06/20 15:11:43

ポイント50pt

ああ、あまりにも不親切だったのでもう一度回答します。

手順は以下の通りです。ちょっとだけ長いです。




1.拡張機能userChrome.jsをインストールする

ここで落とせます。http://www.haslo.ch/zeniko/software/userchrome.js.xpi


2.userChrome.jsを書き換えます

拡張機能インストール後、プロファイルフォルダのchromeフォルダに0バイトのuserChrome.jsがあるはずなので探し出してください。(XPならば、DocumentAndSettings→ユーザ名→ApplicatinData→Mozilla→Firefox→Profiles→chromeです。)

このファイルに、以下のリンク先のコードをそのままコピーします

data:text/javascript,%2F*%20%3A%3A%3A%3A%3A%3A%3A%3A%20Sub-Script%2FXUL%20Loader%20%3A%3A%3A%3A%3A%3A%3A%3A%3A%3A%3A%3A%3A%3A%3A%20*%2F%0A%0A%2F%2F%20automatically%20includes%20all%20files%20ending%20in%20.uc.js%20and%20.uc.xul%20from%20the%20profile's%20chrome%20folder%0A%0A(function()%20%7B%0A%09var%20getURLSpecFromFile%20%3D%20Components.classes%5B%22%40mozilla.org%2Fnetwork%2Fio-service%3B1%22%5D.getService(Components.interfaces.nsIIOService).getProtocolHandler(%22file%22).QueryInterface(Components.interfaces.nsIFileProtocolHandler).getURLSpecFromFile%3B%0A%09var%20chromeDir%20%3D%20Components.classes%5B%22%40mozilla.org%2Ffile%2Fdirectory_service%3B1%22%5D.getService(Components.interfaces.nsIProperties).get(%22UChrm%22%2C%20Components.interfaces.nsILocalFile)%3B%0A%09var%20files%20%3D%20chromeDir.directoryEntries.QueryInterface(Components.interfaces.nsISimpleEnumerator)%3B%0A%09var%20xul_files%20%3D%20%5B%5D%3B%0A%09%0A%09while%20(files.hasMoreElements())%0A%09%7B%0A%09%09var%20file%20%3D%20files.getNext().QueryInterface(Components.interfaces.nsIFile)%3B%0A%09%09if%20(%2F%5C.uc%5C.js%24%2Fi.test(file.leafName))%0A%09%09%7B%0A%09%09%09setTimeout(function(aFile)%20%7B%0A%09%09%09%09Components.classes%5B%22%40mozilla.org%2Fmoz%2Fjssubscript-loader%3B1%22%5D.getService(Components.interfaces.mozIJSSubScriptLoader).loadSubScript(getURLSpecFromFile(aFile))%3B%0A%09%09%09%7D%2C%200%2C%20file)%3B%0A%09%09%7D%0A%09%09else%20if%20(%2F(%5EuserChrome%7C%5C.uc)%5C.xul%24%2Fi.test(file.leafName))%0A%09%09%7B%0A%09%09%09xul_files.push(file)%3B%0A%09%09%7D%0A%09%7D%0A%09%0A%09setTimeout(function()%20%7B%0A%09%09if%20(xul_files.length%20%3E%200)%0A%09%09%7B%0A%09%09%09document.loadOverlay(getURLSpecFromFile(xul_files.shift())%2C%20null)%3B%0A%09%09%09setTimeout(arguments.callee%2C%200)%3B%0A%09%09%7D%0A%09%7D%2C%200)%3B%0A%7D)()%3B%0A%0A


3.6行のスクリプトをuserChrome.jsと同じフォルダにコピーする

ファイル名は指定の通りdoubleClick1.2.uc.jsで。


4.スクリプトを書き換える

4行目の「document.getElementById("cmd_close").doCommand();」を「tab.close()」に書き換えます。


5.Firefoxwo再起動してみてください。



きっと期待する結果になると思います。

id:sample2

やってみたけど、変化がないので、ミスがないか確認します。

→何がまずいのかよくわからず、引っかかってます。

2007/06/20 21:23:40
id:tully No.3

tully回答回数40ベストアンサー獲得回数32007/06/21 08:58:01

ポイント20pt

判りづらかったようですね。

たぶん、私の回答を読み返してみて、間違えるだろうなぁと思う部分の補足を・・・・・


2.で書き換える内容ですが、すいません。なんか違うものが張り付いていますね。

http://forums.mozillazine.org/viewtopic.php?t=397735#2169699

このページのCodeSamplesにある「Sub-Script/XUL Loader」のリンク先に書いてあるスクリプトをそのままコピペしてください。

どうでしょうか。

id:sample2

tab.close() への書き換えをしない場合、右ダブルクリックでタブが閉じました。つまり doubleClick1.2.uc.js 本来の動作には成功しています。とすると、書き換えた部分がおかしいのかな、と思ってます。いかがなものでしょうか。

ところで、マウスカーソルが乗っかっているリンクを新しいタブで開くスクリプトと、ページ内のどこで右ダブルクリックしてもタブが閉じるスクリプトを比較して、前者の方がずっと短くていいというのは、素人には不思議な感じがします。

それに、tab.close() でリンクが新しいタブに開かれる、というのも面白いです。どうして tab.close() なんて勘違いされそうな名前なのでしょうね。タブが閉じてしまいそうではありませんか。

http://pc11.2ch.net/test/read.cgi/software/1168635399/325-327

doubleClick1.2.uc.js を上記リンク先に置き換えたらうまくいきました。本当は新しい「裏の」タブに開いてほしかったことに気付きましたが、条件の後出しなので、以上で満足します。

2007/06/21 11:04:23
id:tully No.4

tully回答回数40ベストアンサー獲得回数32007/06/21 11:03:20

ポイント10pt

これで最後にします。ホント、すいません。

tab.close()と回答したのは、私が問題を読み違えていたせいです。ダブルクリックでタブを閉じたかったのかと思っていました。開きたかったのですね・・・・(しかも、そもそもtab.closeじゃダメダメっぽいみたいでしたし)

では、改めてダブルクリックで開く方法です。

tab.close()に書き換えるところを、

document.getElementById("cmd_newNavigatorTab").doCommand();

としてもらえればいいはずです。

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません