Wellcom to my blog!

2008年8月27日水曜日

【Opera】新しいウィンドウ(タブ)で開きたくない

Webブラウザ「Opera」を使っていない人にはあまり関係の無い記事です。

target="_blank"を憎む



ページ製作者がブラウザ利用者に対して新しいウィンドウで開かせることのできるtarget="_blank"が嫌いです。

その昔メモリが少なかった時代は新しいウィンドウを開かれるだけでパソコンの処理が重たくなったりしたもので、私はこれを憎んですらいます。



必要最低限に使用する分には問題無いだろうとも感じますが、不必要に使おうとするページ製作者はたくさんいますし、必要か不必要かの基準は人によってまちまちで、時に私にとってストレスになるばかりです。



意外と知られてないようですが、利用者は新規ウィンドウで開きたきゃリンクをShift+クリックしたりホイール+クリック(中クリック)すれば開けることを是非ここで覚えてってください。



Firefoxにはtarget="_blank"を無いものと見なす設定(参考:Foamy Capriccio: target="_blank"撲滅委員会)がありますが、私の愛用するOperaには――ありません。

――とすっかり思い込んでいたのですが、それを解決する方法を書いてくださった人がおります。



サイト毎に、CSSを使わず、target='_blank'を殺す方法 - by edvakf in hatena
opera:config#UserPrefs|IgnoreTarget



にチェックを入れるだけでいいそうだ。


私はopera:configの項目――500個以上全ての設定に目を通し、興味深い設定は全て試し、機能とそのメリット、デメリットなどを把握しているつもりです。

上記の設定も例外ではなく、試した覚えがあるのですが、果て、どんな理由で現在使っていないのだろうと度忘れを起こしてしまったことがこの記事を書くきっかけです。



先程まではtarget="_blank"をProxomitronのフィルタで削り、新規ウィンドウが開かれるのを回避していました。OperaにFirefoxのようにまともな設定項目が付け足されない限りこの方法しか無いのだと信じていました。

Operaの設定によって同じ機能が実現するならばそれに越したことはありません。忘れた記憶を取り戻すべく、早速設定を試すことにしました。

opera:config#UserPrefs|IgnoreTargetを試す


方法:opera:config#UserPrefs|IgnoreTargetにチェックを入れる。「保存」を押す。Operaを再起動。終わり。

「『opera:config』って何?」な人はググれ
<a href="foobar" target="_blank">foobar</a>

など、target="_blank"は、私の求めるように無効となり、現在のタブで開くようになりました。



しかし、世の中にはtarget="_blank"よりも悪質な「JavaScriptによって開かれる新規ウィンドウ」というものがあります。JavaScriptがオンでないと先に進めないというタチの悪いものですが、これにも効果があるのか試しておこうと思い立ちました。(ちなみにFirefoxではきちんと現在のタブで表示してくれます)



実験方法:JavaScriptをオンにした状態で下記のページのJavaScriptが使用されたリンクをクリックする。

結果:JavaScriptによって開かれる新規ウィンドウには効果無しどころかリンククリックできねー

All Aboutに至ってはどのリンクも機能しなくてびっくりしましたが、これはAll Aboutでリンクをクリックできない - ウェブブラウザOpera みんなで作るまとめページ (Opera-PukiwikiPlus!)にもあるように、ロードされるJavaScriptのファイルが悪いらしいですね。



リンクがクリックできないのはダメダメですが、これを回避するためにはメニューの「ツール」→「設定」→「ポップアップ」→「すべてのポップアップを有効にする」とすることが有効です。(デフォルトは「要求しないポップアップを無効にする」)

しかし、この設定をすると折角の頑強なOperaが特にブラウザクラッシャーに対して脆弱になりますので、おすすめはできません。



つまり、要するに、opera:config#UserPrefs|IgnoreTargetは使うに難儀……と。

そうだそうだ、だからこの設定を使わなかったんだ。

ほかの方法


Proxomitronを利用して
Name = "Kill New Window"
Active = TRUE
Bounds = "<(a|area|base)*>"
Limit = 256
Match = "\#target\=$AV((_|)(blank|new))\#"
Replace = "\@"

とフィルタでtarget="_blank"を無効にするのも一つの手ですが、Proxomitronを使用していない人には明らかに向いていない方法です。



私は外部のアプリケーションにも頼らないユーザースタイルシートを利用する方法に辿り着きました。



先に紹介したedvakfさんの記事にも載っていますが、そこで紹介されているCSSを少しいじったものを公開しておきます。
:link[target$="blank"],:link[target$="new"],:visited[target$="blank"],:visited[target$="new"]{cursor:crosshair;-o-link:attr(href) !important;-o-link-source:current !important;}

これをあなたのユーザースタイルシートにコピペするだけ。

オリジナルよりも汎用性が高くなっているのと、新しいウィンドウで開かれるはずのリンクをクリックしようとすると、カーソルが十字になるところが便利かと思います。



Proxomitronの方法、ユーザースタイルシートの方法、どちらもJavaScriptのリンクから開かれる新規ウィンドウには対応していませんが、副作用も無く便利なんじゃないでしょうか。

これで私もFirefoxを妬まないで快適にOperaを使用することができましたとさ。

0 件のコメント:

コメントを投稿