残念な思いを致しました(2)

謎のアンカーには残念な思いを致しました。

謎のアンカー

最近特に増えてきているような気がする、謎のアンカー。たとえばこんなのです。

なんとなく俗語集とか

クリックしても、タブキーでフォーカスを移してエンターキーを押しても何も起きません。よくよく見るとスキームが javascript: なんてのになっています。JavaScript がオンの環境では別窓が開いて何か表示されるのでしょうが、JavaScript オフの環境では微動だにしません。

そして JavaScriptがオンになっていれば、それはそれで小さなウィンドウが開いて面倒なことになります。いやまあ、それを避けるためにわざわざオフにしている人が多いと思うのですが。

いずれにしても JavaScript オフだとリンクをたどることが不可能です。全く先に進めません。例によってソースを解析し、URI を手作業でコピー & ペーストという戦いになりますが、たいていはその前に諦めます

謎のアンカーで残念な思いをさせないために

そもそもアンカーを使っているのですから、JavaScript オフ環境でも動作するようにするのは難しくないはずです。例えばこんな感じに。

なんとなく俗語集とか

A 要素の href 属性には javascript: スキームではなく通常のリンク先を書き、onclick属性と onkeypress属性にスクリプトを書いて新規ウィンドウを制御します。そのままでは通常のアンカーとしても同時に機能してしまうので、return false としてアンカーが動作しないようにします。

……なお、onclick だけ指定して onkeypress を指定しないと、マウス操作とキーボード操作で動作が違ってきてしまいますので注意が必要です。まあ、狙ってそうするならそれはそれで良いとも思いますが。

別窓で残念な思いをさせないために

しかし、そもそも別窓が開くことを避けるために JavaScript をオフにしている人がいるということは、別窓を嫌っている人がたくさんいると言うことです。別窓嫌いな人が別窓に残念な思いをするのは避けられません。

最高にして最良の対策は、そもそも別窓を開くような動作なんかさせない、ということです。

本当に別窓が必要なのでしょうか? わざわざ別窓を開かずとも、通常のアンカーで十分なのではないかどうか……このページは、Javascript対応のブラウザをご使用くださいなどと書いている暇に、もう一度検討し直してみてはいかがでしょうか。


HTMLご意見番

HTML鳩丸倶楽部

水無月ばけら, MINAZUKI Bakera
E-mail: bakera@star.email.ne.jp