13

JavaScriptを使用してブラウザのURLを変更することはできますが、ページを離れることはできませんか?

4

4 に答える 4

18

古いブラウザでは、ページを離れずにアドレスバーのURLを変更することはできません。ただし、ページを離れることなくURLのハッシュ部分を変更できます。つまり、JavaScriptを使用www.example.comしてに変更できます。後のすべてを変更することができます。www.example.com#new_textwindow.location.hash = "new_text"#

ただし、HTML5には、ドメインの後のURLの部分を変更できる新しいHistoryAPIがあります。したがって、 (セキュリティ上の理由から)に変更www.example.comすることはできませんが、に変更することはできます。www.BankOfAmerica.comwww.example.com/foowww.example.com/bar

history.pushState("object or string representing the state of the page", "new title", "newURL");

どのブラウザがHTML5セッション履歴管理をサポートし、新しいメソッドをサポートしているかを確認するには、[いつ使用できますか... ]をオンにします。pushState

さらに、ブラウザ間で履歴APIを正規化し、新しいブラウザでURLを変更し、古いブラウザのハッシュ部分を使用するJavaScriptライブラリがあります。history.jsを参照してください。

于 2010-11-03T16:25:35.333 に答える
5

URLバーに表示されるURLについて話していると仮定します。

答えは「いいえ」です。アプリケーションがユーザーをだまして別のサイトにいると思わせようとする場合、これは主要なセキュリティの脆弱性です。

于 2010-11-03T16:24:15.547 に答える
-2

#ハッシュマーク( )の後は、Google検索や新しいTwitterなどのAjaxアプリケーションで頻繁に使用されるため、何でも変更できます。(そのため、これらのアプリではすべてがハッシュマークの後に表示されます。)ただし、他に何かを変更した場合は、ページを再読み込みする必要があります。

于 2010-11-03T16:23:56.290 に答える
-6

いいえ、できません。そして、可能な限り、それはブラウザのバグです(この動作に関連する以前のセキュリティバグについては知っていますが、過去に修正されました)。

実際には...URLの最後の部分、つまり文字の後の部分は何でも変更できます#。ただし、ホスト名とパスはページを離れずに変更することはできません。

于 2010-11-03T16:25:40.433 に答える