user.js で Firefox に追加した設定を無効にしたい場合の手順

http://hxxk.jp/2008/10/25/0003

記事データ

投稿者

真琴

投稿日時

2008-10-25T00:03+09:00

タグ
概要

Copy URL+ 1.3.2 のまとめ。導入からバグへの対処、カスタマイズの例まで。にて user.js でコンテキストメニューを追加する方法を紹介していましたが、逆にコンテキストメニューを削除したい場合は user.js の編集だけではいけませんので、その解説をまとめています。

リプライ

3 件のリプライがあります。

記事本文

user.js にて追加した設定を削除したい→ハマる

Copy URL+ 1.3.2 のまとめ。導入からバグへの対処、カスタマイズの例まで。に、 一度user.jsに記入した後、再度記入したコードを少なくして他のを付け足したら・・右クリックで付け足したものと以前のもの全部表示されてしまいます。最初に記入したものを記憶させないようにするにはどうすればいいのでしょうか? というリプライが寄せられました。 user.js の作成と注意点で user.js への設定の追加については書いていましたが、設定の削除については書いていなかったですね。 ( というか、設定を削除するという状況を考えたことがなかったので、想定外の質問でした。 )

質問をいただいた時点では 「 user.js の記述を削除して、 Firefox を再起動すればいいんじゃないかなあ」 と思って実際に試してみたのですが、 Firefox を再起動してもコンテキストメニューから項目が消えません。 でも user.js 内には記述が残っていません、うむむ。

……と思っていると、 コメントがちゃんと反映されたようですので、再度詳しく投稿します。2重投稿になります一度user.jsに15項目ほど自作して記入、firefoxに反映させたのですが、項目が多すぎて見にくいなぁ・・と思ったので、以前記入したコードを省略して、他のを付け足してfirefoxに反映させたら・・2回目に付け足したものと、以前記入したものが全部表示されてしまうんです。1回目に記入したものを、prefs.js?に記憶させないようにするにはどうすればいいのでしょうか? という追加コメントが。

そうか prefs.js にも設定内容が残るんでした ! user.js で設定した内容は prefs.js に記録される……というのは以前目にしていたことがあるので、 user.js と prefs.js の該当部分を削除して上書き保存してみました。

で、 Firefox を再起動してもコンテキストメニューから項目が消えません。 でも user.js 内には記述が残っていません、 prefs.js には記述が残っています、うむむ。

もったいぶっても何なので先に参考リソース

まあこの後色々試して正解に行き着くわけですが、それを事細かに書いても冗長になるだけなので、正解というか参考リソースを羅列します。

各リソースを読んでいただきたいのですが、簡単にまとめると

  1. user.js の記述を削除またはコメントアウトし、上書き保存
  2. Firefox を一旦終了させる
  3. prefs.js 内の同様の記述を削除し、上書き保存
  4. Firefox を起動

または

  1. user.js の記述を削除またはコメントアウトし、上書き保存
  2. about:config で該当する値のリセット
  3. Firefox を再起動

という手順になります。

私がどこでハマったのか

さて、これらの手順と、冒頭で私がハマった手順のどこに違いがあるのでしょう ? 手順をおさらいしてみましょう。

失敗した手順 正しい手順
user.js の記述を修正し、保存する Firefox を終了させる
prefs.js の記述を修正し、保存する user.js の記述を修正し、保存する
Firefox を終了させる prefs.js の記述を修正し、保存する
Firefox を起動する Firefox を起動する

表にすると分かりやすいですが、 prefs.js はオプション画面または、about:configからの設定の変更後即座に、現在の設定を prefs.js に書き込み(デフォルト値から変更されているもののみ)され、また アプリケーション起動中に prefs.js を編集しても、終了時に上書きされてしまうため、 Firefox を起動した状態で prefs.js を直接編集しても、 Firefox の終了時に直接編集した部分は無効になります。

user.js と prefs.js の編集

今回は prefs.js を直接編集していますが、間違って削除してはいけない指定を削除してしまわないように、 about:config から個別に修正するようにした方がいいかもしれません。

また、 user.js は

  • Firefox 起動時の動作
    1. デフォルトの設定を読み込み
    2. prefs.js を読み込み
    3. user.js を読み込み

のような動作をするため、 user.js の記述を残している限り、 prefs.js を直接編集したり、 about:config で設定したりしても、次回の起動時にその記述を再度適用することになります。 ブルーライトノヴァ - Firefox - prefs.js/user.js にて 少々の変更ならば GUI 経由、または prefs.js の編集を、永続しておきたい設定は user.js に記述すると良いのではないでしょうか と書かれてあるように、それぞれのファイルの特性を理解した上で設定の追加・削除を行うようにするといいと思います。

……というか、今回のリプライのおかげで私もこの特性を理解することができました。 ともさん、ありがとうございます !

リプライ

3 件のリプライが送られています。

2008-10-27T03:29+09:00 - とも

ともです。すごい本格的な検証で驚きました(笑)こちらこそありがとうございます!早速prefs.js 内の同様の記述を削除しようと思ってEmEditorで開こうとすると、「null文字?など変換できない文字が含まれています。保存すると破壊されます」というダイアログボックスが表示されたので、about:configの方のやり方でやろうと思いましたが・・すいません、「about:config で該当する値のリセット」の該当する値とはどの部分を指しているのでしょうか?色々調べましたがよく理解できないんです(-。-;)

2008-10-27T20:40+09:00 - 望月真琴

ええと、記事中で紹介している user.js - Mozilla Firefox まとめサイトの中を「リセット」で検索するといいと思います。もしくは about:config のフィルタに copyurlplus.menus を入力。

2008-10-29T02:14+09:00 - とも

ある程度は無事編集できました^^ 望月さん、ありがとうございます。ただなぜか、「URLとタイトルをコピー」「URLと選択文字列をコピー」「URL・タイトル・選択文字列をコピー」の部分だけは消えないです。(copyurlplus.menusでも出てこなかった)ひょっとしたらこれら3つは標準だったのかもしれませんね。記憶ではこの3つの内の1つは自分で作成したような気はしますが(^_^;でも大部分は消えたので活用してゆこうと思います。こういった質問するときにブログ持ってたら楽しそうなので、ブログ作ろうかな^^; それでは!

この記事に対するご意見やご質問、ご感想などありましたらこのフォームに簡潔に記入して下さい。 簡潔に記入できない場合や、関連記事にてご意見をお寄せいただく場合は、ご自身の weblog にて記事を書かれた上で あてにトラックバックとして送信してください。

記入フォーム

補足情報

著作、講演、制作実績など