OperaでNoScriptが実現された日。

id:edvakfさんのところで紹介されたブログ、Operaised -- The blogを見ていたら、My userjs/modified userjsというエントリーを発見。つらつらと見ていたら、何気にすごいものがありましたよ。

blockscripts.js
Allows you to block javascript on the site but allow userjs on the page. Ctrl Alt and click allows javascript on for that tab so it can still work.

え、これは何って?
JavaScript無効化した上でUserJSが使えるUserJSですよ、奥さん!
今までは、サイト設定の編集で各サイトごとでJavaScriptを無効化したり、Ultimate blockageっていうのでひとつひとつ無効化したり、Disable scriptでUserJSだけを使えるように追記したりやっていましたが、もうそんなことする必要はなくなったみたいです(誇張)。
このUserJSは、

  1. Disable scriptと違ってujsenabled関数の有無に関わらず、UserJS(ブックマークレット含む)だけを有効にします。
  2. Ctrl+Alt+クリックで、表示している"タブ"のJavaScriptを有効化することができます。("Scripting on for this tab"っていうダイアログが表示されます。)

何気に2番目が凄いです。表示しているタブだけで有効化されると書きましたが、もうちょっと詳しく書くと、

  • 実行後、リロードしてもJavaScriptは有効のままになる。
  • タブを閉じてもう一度開くと、無効化された状態になる。

ええ、FirefoxのNoScriptがほとんど実現できたんじゃないんでしょうか。これでOperaライフが充実するというものです。

追記

表現上誤解されそうなので、修正した後もうちょっと書くことに。
Operaの設定でJavaScriptは有効にしないとだめですよ。このUserJSは、「blockscripts.jsがサイトのJavaScriptを無効化して、UserJSを実行させる」っていうものなのです。