リロード | 新規新規 編集編集 差分差分 添付添付 バックアップバックアップ | 一覧 検索 最終更新 凍結 複製 改名 | ヘルプ | 最終更新のRSS |

 
userChrome.js用スクリプト 
http://wiki.nothing.sh/2710.html

█ userChrome.js用スクリプト

Last-modified: 2019-10-17 (木) 23:34:19 / Short URL: http://wiki.nothing.sh/2710.html / add to hatena bookmark - users / add to livedoor clip - users

 

インフォメーション

はじめに

ここは Mozilla Firefox のスクリプト ローダーである userChrome.js の情報ページです。

  • 現在、Firefox で userChrome.js用スクリプトを利用する方法を案内しています。
  • メソッド3 が最新の導入法になります。本体のバージョン別に多少違いがありますので、よく読んでください。
  • インフォメーションとスクリプト導入法以外については、基本的にメンテナンスされていません。
     

開発者、アップローダー、フォーラム

GitHub でのスクリプトのダウンロード方法

  • ダウンロードするスクリプトのソースコード表示ページへ行き、『Raw』と書かれたリンクを右クリックして、『名前を付けてリンク先を保存...』を選択します。
    • ダウンロードしたファイルの末尾に .txt が付いていれば、それらの名前を変更して本来の拡張子に戻してください。
       

スクリプト導入法

メソッド1 Firefox57+

■Firefox57 以降で userChrome.js用スクリプトを利用する方法*1

  • uc.xulloadoverlay をどうしても使いたい場合のみ、こちらの方法を使ってください。
  • それ以外の場合は、メソッド2 を使います。
  1. Firefox のインストールフォルダー内に、これ『autoconfig.cfg』として保存する
  2. Firefox のインストールフォルダー内の、defaults フォルダー、その中の pref フォルダーを開く
  3. pref フォルダー内に以下の内容を『autoconfig.js』として保存する
    pref("general.config.filename", "autoconfig.cfg");
    pref("general.config.vendor", "autoconfig");
    pref("general.config.obscure_value", 0);
  4. Firefox のプロファイルフォルダー内に、『chrome』フォルダーを作成する
  5. chrome フォルダー内に、これ『userChrome.js』として保存する
  6. chrome フォルダー内に、userChrome.js用スクリプト (*.uc.js , *.uc.xul) を配置する
  7. (任意) 念のためスタートアップキャッシュを消す
    1. firefox.exe -purgecaches オプション付きで起動する
       

メソッド2 Firefox60+

■Nightly61.0a1 以降でも userChrome.js用スクリプトを利用する方法*2

  • ESR52 でもこちらの方法が使えます。
  • uc.jsuc.xulloadoverlay を使ってるものは動作しません。
  • メソッド1 で追加したファイルは、必ず、すべて削除しておきます。
  • Firefox62 以上は、メソッド3 を使います。
  1. Firefox のインストールフォルダー内に、これ『config.js』として保存する
  2. Firefox のインストールフォルダー内の、 defaults フォルダー、その中の pref フォルダーを開く
  3. pref フォルダー内に、これ『config-prefs.js』として保存する
  4. Firefox のプロファイルフォルダー内に、『chrome』フォルダーを作成する
  5. chrome フォルダー内に、『utils』フォルダーを作成する
  6. utils フォルダー内に、これら のファイルを保存する
  7. chrome フォルダー内に、これ『userChrome.js』として保存する
  8. chrome フォルダー内に、userChrome.js用スクリプト (*.uc.js , *.uc.xul) を配置する
  9. (任意) 念のためスタートアップキャッシュを消す
    1. firefox.exe -purgecaches オプション付きで起動する
       

■おまけ、ESR60Legacy Add-ons (若干の手直しは必要) を使うには、上記に加えて config.js に以下を追記しておきます。

try {
Components.utils.import("resource://gre/modules/addons/XPIProvider.jsm",{}).isDisabledLegacy=function(){return false};
pref("extensions.legacy.enabled", true);
pref("xpinstall.signatures.required", false);
pref("extensions.allow-non-mpc-extensions", true);
pref("extensions.strictCompatibility", false);
pref("extensions.checkCompatibility.60.0", false);
pref("datareporting.healthreport.uploadEnabled", false);
pref("datareporting.policy.dataSubmissionEnabled", false);
} catch(e) {}
 

メソッド3 Firefox62+

■サンドボックスが有効になった 62 以降でも userChrome.js用スクリプトを利用する方法*3

  • uc.jsloadoverlay を使ってるものは動作しません。
  • uc.xul は動作しません。
  • メソッド1 または メソッド2 で追加したファイルは、必ず、すべて削除しておきます。
  • スクリプトの仕様は随時更新されています。導入する userChrome.js用スクリプトは、最新かどうか必ず確認してください。
  • 古いスクリプトは、Firefox の仕様変更に伴い、本体をバージョンアップした際に動かなくなることがあります。
  • Firefox66 から、スクリプト及び関連ファイルは UTF-8 でないと動作しなくなりました。導入の際は、エンコードを必ず確認してください。
  • alice0775氏の userChrome.js用スクリプトを使用する場合は、原則として本体バージョンと同じディレクトリのものを使用してください。
     

🦊Firefox68 以上

  1. こちら から使用している Firefox のバージョン番号に対応するディレクトリに入り、『userChrome.css』『userChrome.js』『userChrome.xml』をダウンロードする
    1. GitHub でのスクリプトのダウンロード方法
  2. Firefox のプロファイルフォルダー内に、『chrome』フォルダーを作成し、そこにダウンロードしてきたファイルをすべて移動する
    1. userChrome.css が既に存在している場合は、適当なテキスト エディターを使ってダウンロードしてきたものの内容を、既存のものの先頭に追記する
  3. chrome フォルダー内に、userChrome.js用スクリプト (*.uc.js) を配置する (UTF-8 BOM無しテキスト)
  4. about:config から『toolkit.legacyUserProfileCustomizations.stylesheets』を検索し、これを true にする
  5. Firefox 本体を再起動する
     

🦊Firefox67 以下

  1. Firefox のプロファイルフォルダー内に、『chrome』フォルダーを作成する
  2. chrome フォルダー内に、『userChrome.css』ファイルを作成する (UTF-8 BOM無しテキスト)
  3. userChrome.css 内に、以下を追記して保存する
    toolbarbutton#alltabs-button { -moz-binding: url("userChrome.xml#js"); }
  4. chrome フォルダー内に、これ『userChrome.xml』として保存する
  5. chrome フォルダー内に、これ『userChrome.js』として保存する
  6. chrome フォルダー内に、userChrome.js用スクリプト (*.uc.js) を配置する (UTF-8 BOM無しテキスト)
  7. (任意) 念のためスタートアップキャッシュを消す
    1. firefox.exe -purgecaches オプション付きで起動する
       

スクリプト入手先一覧

サイト別

 
 

2chやアップローダーに投稿された単品

大いなる過去の遺産

userContent.js

Greasemonkey互換(一部を除く)。

  • userContent.jsは, GM用スクリプトのほとんどが動作すると思う, ツールメニューによりスクリプトのOn/Offの制御が可能。
  • GMの一部のスクリプト(ドキュメント内スクリプトを参照するような)は動作しないようになっています。(セキュリティ面から,それぞれのスクリプトは,スクリプト毎に用意されたXPCNativeWrapperでラップされた名前空間で実行するようになっているため)

userMenu.js

Javascript Actions拡張版。
※userChromeJS上で利用する際は、プロファイル内のchromeフォルダ直下にuserChrome.js(Alice0775版サブスクリプトローダー)を置いて下さい。この環境でないとうまく動作しない場合があります。*11

  • userMenu.js一式同梱スクリプト
    • Use Javascript.auto.js
      • 特徴: user.jsでサイト側の内外部JavaScriptの実行を無効の状態にする。Use Javascript.auto.jsでコンテキストメニューからホスト単位でJavaScriptを有効または再度無効の状態にする。
      • 下準備: プロファイルフォルダ直下にuser.jsを作成*12する。「user_pref("capability.policy.default.javascript.enabled", "noAccess");」と記述して保存する。(userMenu.js.readme.txt参照)

補足

  • userMenu.js, サブメニューのネスト, タブメニューやメインメニューなど, より拡張されている。
  • Ver0.9以降新機能にタブ毎にセキュリティ・ポリシーを設定できるタブコンテキストメニューが追加された。
  • JSAに比べセキュリティが強化されているため一部のスクリプトは修正が必要。

Tips

  • Tips(userContent.js ver. 1.0,userMenu.js ver. 0.9)
    セキュリテイからGM用スクリプトが動作できない場合, 以下の修正を行うことで動作するようになります。(ver1.0)
    元のGM用スクリプトに以下に示す最初3行と最後1行を追加する。
    var namespace = new unsafeWindow.Function();
    namespace.prototype = this;
    eval((function(){ (function(){
    ......元のGM用スクリプト本体
    })(); }).toSource() + '();',new namespace());
  • Tips(userContent.js ver. 1.11,userMenu.js ver. 1.0)
    1. jsaのようにComponentsを使えるようにするには
    var global = new chromeWindow.Object();
    global.window = unsafeWindow;
    global.document = unsafeDocument;
    global._jsaCScript = _jsaCScript;
    eval('(' + function(){
    最後に↓を追加.
    }.toSource() + ')();',global);
    または
    var namespace = new unsafeWindow.Function();
    namespace.prototype = this;
    eval((function(){ (function(){
    ......元のJSA用スクリプト本体
    })(); }).toSource() + '();',new namespace());
    2. JsActions.scriptFolderPathは,_jsaCScript.currentScriptPath.replace(/[^/\\]+$/,'')で代用
    3. windowオブジェクトをなるべく保持するようになった

    1.11ではwindowオブジェクトをなるべく保持するようになっているので,AutoPagerizeの場合, 同スクリプト内の
    if (typeof(window.AutoPagerize) == 'undefined') {
    window.AutoPagerize = {}
    window.AutoPagerize.addFilter = function(f) {
    AutoPager.filters.push(f)
    }
    window.AutoPagerize.addDocumentFilter = function(f) {
    AutoPager.documentFilters.push(f)
    }
    }
    //if (typeof(window.AutoPagerize) == 'undefined') {
    window.AutoPagerize = {}
    window.AutoPagerize.addFilter = function(f) {
    AutoPager.filters.push(f)
    }
    window.AutoPagerize.addDocumentFilter = function(f) {
    AutoPager.documentFilters.push(f)
    }
    //}
    としないと, filterが機能しないようです。これは,元のAutoPagerizeのバグと思われる。
    4. windowオブジェクト下のonloadを初めとする「on〜」と言う一連のイベント用のコールバックは使えないので,unsafeWindowを使う必要があります.これはGMでも同様.
    window.addEventListenerは動作しますが,ver. 1.1でスクリプトの起動タイミングが遅くなったため,loadイベントの後にスクリプトが起動され,イベントを捕らえられない事があります.
    5. Exception... "'Permission denied to get property Function.__parent__' when calling method:.....

    非特権コードから特権コードを呼び出そうとして失敗したんじゃないかと.
    メタデータに「@privilege false」(ver1.2ではバグのためtrueとする)を追加するか,userContent.pl.jsの「USE_GM」を「2」にすれば動くと思います.
    6. ReferenceError : 定義されていない

    極一部を除くchromeWindow下のプロパティやメソッドを,chromeWindowを省略して呼び出せなくなりました.
    7. GM_Modoki.jsl:GM_xmlhttpRequestのイベントハンドラでの例外が発生する場合, 同メソッドの該当箇所を下記のようにする。
    setTimeout(function(){
    if(typeof obj.data == 'string') req.send(obj.data);
    else req.send(null);
    }, 500);
    ※ver1.2では上記対策済み。
    8. malformed URI sequenceエラー
    UTF-8 でないファイルをUTF-8として扱おうとして出るエラーです.
  • pl.jsファイル中のUSE_UTF8とUSE_GM
    • USE_UTF8が「2」→全てのファイルをUTF-8で保存するか「1」に変更する.
    • USE_UTF8が「1」→該当ファイルに適当な日本語の注釈文入れて自動判別が成功する.
    • USE_GMが「2」→*.user.jsを全てUTF-8で保存する.

adblock#.uc.js

Adblock軽量版。
当初公開していたアップローダー『LODA.JP』が閉鎖したため現在はこちらで公開している。

LODA.JPのファイルについて

LODA.JPは閉鎖されました。

同サイトにあったファイルのうち、
パスワードが掛けられているもの以外
メンテナンス時に消えてしまったもの以外は、
旧アップローダーこちら(単一ファイル)からダウンロードできます
(ファイル名やコメントなどはこちら)。

また、uploader.jp時代のファイルも含めたものは、
こちら(単一ファイル)にあります。

関連項目

ご意見

  • テスト書き込み -- 名無し? 2013-05-08 (水) 09:04:30
  • 流石にページ長すぎだろ。そろそろ分割した方がいい。 -- 2013-05-17 (金) 22:48:16
  • 目次だけは統合されてないと不便じゃないかな -- 2013-05-21 (火) 06:13:44
    • 目次を維持したまま分割しようとするとサイト別にページを作らないといけなくなるので難しいですね -- 2013-05-22 (水) 19:02:16
    • 1つの方法としては、ページを階層化したうえで、ls2を使うというのがある。 -- 2013-05-22 (水) 21:44:54
  • アルファベット順とか、時系列順とか、何らかの基準に従って分割しないと分かりにくいと思うのだが。 -- 2013-05-22 (水) 21:32:18
  • とりあえずls2でやってみました -- 2013-05-23 (木) 14:42:15
  • そろそろ2分割から3分割にしてほしい。スクリプト配布サイト3。 -- 2014-01-16 (木) 10:24:19
  • スクリプト配布サイト3作成。 -- 2014-12-06 (土) 09:33:06
  • しつこく荒らしに消されるので、書き戻すついでに統一感のなかった見出しルールを整理した。 -- 2016-10-04 (火) 08:29:09
  • 全消し荒し出没中なので要注意 -- 2018-06-18 (月) 00:38:06
  • 全消し荒し出没中なので要注意 -- 名無し? 2018-06-18 (月) 00:40:12
  • middle-click-close-tab-in-alltabs-popup -- 2018-12-11 (火) 05:55:27

 

*1 参考出典:設定の管理
*2 参考出典:userChromeJS
*3 参考出典:userChrome.js導入over62_new.zip
*4 作者のブログは閉鎖されている
*5 Firefox10まではabout:configの「browser.search.openintab」の値をtrueにした状態で検索バーから検索した時に背面のタブで開かれるようになっていたが、「browser.search.openintab」の値をtrueにした状態で、検索した時にアクティブ状態の新しいタブで開かれるようになっている
*6 コメントアウト部分に書かれている「user.jsにuser_pref("permissions.default.script", 1〜3);を追記」でもOK
*7 v0.4ではvalue:に2種類の値を設定してクリックで切り替え可能
*8 「TabsToolbar」と記入するとタブバー右端に表示される
*9 loda.jp-script.7zに収録
*10 メモリ使用量が閾値を超えた時
*11 Alice0775版でないサブスクリプトローダーを使用しているucではFirefox本体やucのバージョンによっては動作しない場合があります
*12 UTF-8で保存する

(HTML conversion costs 0.015 sec.)