JavaScriptを使用してブラウザのURLを変更することはできますが、ページを離れることはできませんか?
4 に答える
古いブラウザでは、ページを離れずにアドレスバーのURLを変更することはできません。ただし、ページを離れることなくURLのハッシュ部分を変更できます。つまり、JavaScriptを使用www.example.com
してに変更できます。後のすべてを変更することができます。www.example.com#new_text
window.location.hash = "new_text"
#
ただし、HTML5には、ドメインの後のURLの部分を変更できる新しいHistoryAPIがあります。したがって、 (セキュリティ上の理由から)に変更www.example.com
することはできませんが、に変更することはできます。www.BankOfAmerica.com
www.example.com/foo
www.example.com/bar
history.pushState("object or string representing the state of the page", "new title", "newURL");
どのブラウザがHTML5セッション履歴管理をサポートし、新しいメソッドをサポートしているかを確認するには、[いつ使用できますか... ]をオンにします。pushState
さらに、ブラウザ間で履歴APIを正規化し、新しいブラウザでURLを変更し、古いブラウザのハッシュ部分を使用するJavaScriptライブラリがあります。history.jsを参照してください。
URLバーに表示されるURLについて話していると仮定します。
答えは「いいえ」です。アプリケーションがユーザーをだまして別のサイトにいると思わせようとする場合、これは主要なセキュリティの脆弱性です。
#
ハッシュマーク( )の後は、Google検索や新しいTwitterなどのAjaxアプリケーションで頻繁に使用されるため、何でも変更できます。(そのため、これらのアプリではすべてがハッシュマークの後に表示されます。)ただし、他に何かを変更した場合は、ページを再読み込みする必要があります。
いいえ、できません。そして、可能な限り、それはブラウザのバグです(この動作に関連する以前のセキュリティバグについては知っていますが、過去に修正されました)。
実際には...URLの最後の部分、つまり文字の後の部分は何でも変更できます#
。ただし、ホスト名とパスはページを離れずに変更することはできません。