OperaのユーザーJavaScriptはUTF-8Nで
Tuesday, 13. March 2007, 15:39:45
遅ればせながら『まるごとJavaScript & Ajax ! Vol.1』を買いました。めっちゃ面白いです。 私のようなJavaScriptの事が全然わからないわけじゃないけど初級を抜けられないという人間にはうってつけ。特にnanto_viさんの記事はWebブラウザマニアなら必読。この内容で二千円はお買い得です。
ところで、cho45さんの記事「ものぐさなGreasemonkeyの飼いかた」(これもすげー面白い)の「OperaのGreasemonkey互換」というコラムに、OperaはGreasemonkeyと違って「user.js」で終わっていないスクリプトは普通のUserJSとして実行され
、普通のUserJSは@includeなどは無視されすべてのページで実行されます。
とあるのですが、これはそんなことはありません。.user.jsのファイルも.jsのファイルも実行タイミングを除けば同じように振る舞うはずです。
ただし、ユーザーJavaScriptファイルのエンコード方式をBOM付きのUTF-8にした場合に限り、BOMの誤認識によりファイルの先頭のコメント部分が不正になってしまい、その結果UserScriptメタデータが無効になってしまうことによって@include等の指定が無視されてしまうという仕様(バグ?)がOperaにはあります。
えー、要するに、Opera用のユーザーJavaScriptを作る際はファイルのエンコードをBOM無しのUTF-8(所謂UTF-8N)にしておきましょうという事ですね。
私自身、たまにうっかりして忘れるのでここに記しておきます。