ページをリロードせずにURLを変更するにはどうすればいいですか? 質問する

ページをリロードせずにURLを変更するにはどうすればいいですか? 質問する

ページをリロードせずに現在のページの URL を変更する方法はありますか?

可能であれば、# ハッシュの前の部分にアクセスしたいと思います。

ドメインの後の部分を変更するだけでよいので、クロスドメインポリシーに違反しているわけではありません。

 window.location.href = "www.mysite.com/page2.php";  // this reloads

ベストアンサー1

これは、Chrome、Safari、Firefox 4+、Internet Explorer 10pp4+ で実行できるようになりました。

詳細については、この質問の回答を参照してください。ハッシュやページの再読み込みなしでアドレスバーを新しい URL で更新する

例:

 function processAjaxData(response, urlPath){
     document.getElementById("content").innerHTML = response.html;
     document.title = response.pageTitle;
     window.history.pushState({"html":response.html,"pageTitle":response.pageTitle},"", urlPath);
 }

window.onpopstate次に、またはを使用してwindow.addEventListener、戻る/進むボタンのナビゲーションを検出できます。

window.addEventListener("popstate", (e) => {
    if(e.state){
        document.getElementById("content").innerHTML = e.state.html;
        document.title = e.state.pageTitle;
    }
});

ブラウザ履歴の操作の詳細については、このMDNの記事

おすすめ記事