ロードせずにdocument.locationを書き直します
-
05-10-2019 - |
質問
もちろん、最初のリクエストを除いて、100%Ajaxのシステムを開発しています。
JavaScriptを使用して、document.locationのアドレスを変更することに興味があります。ただし、ブラウザがその「新しい」場所にページをロードしたくありません。
誰かが私がこれを行う方法を知っていますか?
解決
「ハッシュ」部分だけでなく、場所全体を書き直すために、ブラウザの履歴APIを使用できますが、現在のようです Gecko 1.9.3/Firefox 4でサポート.
history.replaceState({}, document.title, url)
他のヒント
ナビゲートせずにURL全体を変更することは不可能です。 セキュリティ上の問題 生成できること。
あなたはのみ変更できます location.hash
, 、次のように続くURLの一部です #
シンボル:
location.hash = "foo";
URLはに変更されます http://someurl.com/#foo
Gmailが使用するのと同じ方法を使用できます。アンカーをURLの最後に追加すると、ブラウザはページをリロードしてはなりませんが、情報を読むことができます document.location.href
そしてそれに基づいて行動します。これにより、バックボタンの機能がそのまま続きます(JavaScriptがサポートすることを提供します)
例えば
最初のページはです http://www.mypage.com/index.php
次の「ページ」を使用してクリックします <a href="#page2">link</a>
そしてそれはに変わります http://www.mypage.com/index.php#page2
所属していません StackOverflow