Opera の UserJS に関するモヤモヤをスッキリさせる

私の脳内でモヤモヤしていたものを整理してみました。誤り等がございましたら、ご指摘をいただけると幸いです。

Opera の UserJS とは?

Opera*1 ではアクセスした Web ページに対し、追加で任意の JavaScript を適用できる機能(初期設定ではオフ)がある。そのスクリプトファイルが UserJS である。
正式名称は User JavaScript (UserJS , ユーザー JavaScript , ユーザースクリプト などと表記されている場合が多い)ここでは UserJS と表記する。

利用方法

任意の場所に UserJS 専用のフォルダを作成する。(ここでは %APPDATA%\Opera\Opera\profile\userjs とする。) UserJS は、このフォルダに保存する。
Opera を起動し、ツール > 設定 とクリックする。

表示された設定画面で、詳細設定 タブ > コンテンツ > JavaScript オプションを開く。

表示された JavaScript オプション画面で、先ほどの UserJS フォルダのパスを入力する。(ここでは %APPDATA%\Opera\Opera\profile\userjs)

UserJS は次にページを読み込む際、自動的に読み込まれるので Opera を再起動する必要はない。(UserJS を更新した際も再起動の必要はなし。)

有効かどうか確かめるには

ヘルプ > Opera について をクリックし、使用中の Opera に関する設定を表示する。

あるいは、アドレスバーに直接 about:opera と入力し移動しても同じ画面を表示する事が出来る。

UserJS が有効な場合は、下の画像のように "ユーザー JavaScript ファイル" の項目と UserJS フォルダへのパスが表示される。

適用されるページ

opera: プロトコルを用いてアクセスしたページには適用されない。
(初期設定では) https: プロトコルを用いてアクセスした Web ページも適用されない。
https: プロトコルを用いてアクセスした Web ページにも適応させるには(危険なので要注意)、アドレスバーに opera:config#UserPrefs|UserJavaScriptonHTTPS と入力し移動する。表示された設定画面の "User JavaScript on HTTPS" のチェックボタンにチェックを入れて、

保存する。

UserJS の書式 メタデータブロック

GreaseMonkeyスクリプトと同様に簡単なルールを記述することができる。
メタデータブロックは

// ==UserScript==

で始まり、

// ==/UserScript==

で終わる。ルールの形式は

// @宣言 値

となっている。Opera の UserJS では下記の 2つの宣言が有効である。

  • @include…UserJS を適応させる URL を指定。
  • @exclude…UserJS を適応させない URLを指定。

*(アスタリスク) をワイルドカードとして利用できる。
サンプル:

// ==UserScript==
// @include http://www.example.com/*
// @exclude http://www.example.com/index.html
// ==/UserScript==

2つのモード

拡張子が .js の場合は通常の UserJS として処理される。
拡張子が .user.js の場合は GreaseMonkey 記法の UserJS として処理される。
実行タイミング等の具体的な仕様は 2つのモードで異なる。


続く

参考 Web サイト

//jp.opera.com/support/tutorials/userjs/" title="ユーザー JavaScript による制御">ユーザー JavaScript による制御:UserJS の解説 (Opera 9 系用) (公式)
//www.opera.com/browser/tutorials/userjs/" title="Opera: Tutorial - User javascript">Opera: Tutorial - User javascript:UserJS チュートリアル (Opera 9 系用) (公式) (英語)
//www.opera-wiki.com/index.php?User%20JavaScript" title="User JavaScript - ウェブブラウザOpera みんなで作るまとめページ (Opera-PukiwikiPlus!)">User JavaScript - ウェブブラウザOpera みんなで作るまとめページ (Opera-PukiwikiPlus!):Opera wiki の UserJS の解説ページ。UserJS の紹介もあるが古いかもしれない。

*1:動作確認は WindowsOpera 9.62 で行っています。