読者です 読者をやめる 読者になる 読者になる

Corredor

ウェブ、プログラミングの勉強メモ。

ブラウザのステータスバーに遷移先 URL を表示しないようにできるか

教えてください ブラウザ IE IE11 Firefox Chrome HTML JavaScript CodePen

社内で「ブラウザのステータスバーに遷移先 URL を表示しないようにしたい」というバカげた要件が出てきていて解決方法を探っているチームがいて、数日迷っていたので以下の StackOverflow を見せてみた。

昔は onmouseover 時に window.status を書き換えることで偽装できたようだが、最近のブラウザはどれもフィッシング詐欺対策のためか、無効になっている様子。この方法は使えない。

ということは href 属性に URL を書かない方法しか基本的にはないようで、後はリンクとして機能させるために href 属性は書いておきつつ、その属性値をステータスバーに表示しないようにするしかない。画面遷移は onclick イベントで制御するのだ (location.href で直接遷移なり、ギョーミーなシステムであれば form.submit() とかでフォーム送信しつつ遷移してもいい)。

で、URL を表示させないようにする属性値が何かないか調べてみると、href 属性に .: と入れると、IE11 と Chrome はこの値がステータスバーに表示されなかったFirefox.: が表示されてしまった (いずれもWindows10 にて検証)。なお、.: の後ろにはどのようなテキストを書いても問題なさそう。

今回対象としているのは Windows7・IE11 という環境で、window.open() でステータスバーを非表示にして開いた時のサブウィンドウで URL 表示をなくしたい、ということだった。Windows7・IE11 で window.open() により開かれたサブウィンドウで検証してみると、href 属性がハッシュのみ # のリンクも URL が表示されなかった。

一応今のところ、href 属性値は .: にしておきながら、onclick で操作するのが一番よさげだけど、他にあれば教えてください。

See the Pen Status Bar URI Display by Neos21 (@Neos21) on CodePen.

span 要素にスタイル付けして偽装するのはアレ過ぎますかね…。