ブラウザのステータスバーに遷移先 URL を表示しないようにできるか
社内で「ブラウザのステータスバーに遷移先 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
で操作するのが一番よさげだけど、他にあれば教えてください。
- デモ : Status Bar URI Display
- コード : frontend-sandboxes/index.html at master · Neos21/frontend-sandboxes
span 要素にスタイル付けして偽装するのはアレ過ぎますかね…。