ページをリロードせずに現在のページの 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の記事。