1. ホーム
  2. javascript

[解決済み] ページを再読み込みせずにURLを変更するにはどうすればよいですか?

2022-03-17 12:23:34

質問

ページを再読み込みせずに、現在のページのURLを変更する方法はありますか?

の部分にアクセスしたい。 可能であれば、#のハッシュを使用してください。

の部分だけ変えればいいんです。 の後に のドメインで、クロスドメインポリシーに違反するようなことはありません。

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

解決方法は?

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.onpopstate = function(e){
    if(e.state){
        document.getElementById("content").innerHTML = e.state.html;
        document.title = e.state.pageTitle;
    }
};


ブラウザの履歴の操作について、より詳しく知りたい方は、以下をご覧ください。 このMDN記事 .