jQuery/Javascript 経由でページをリロードせずに URL を書き換えることはできますか?
次の URL があるとします。
http://stackoverflow.com/questions/ask
値を追加できますか:/pId=XYZ
だからあなたは得ることができます
http://stackoverflow.com/questions/ask/pId=XYZ
これは可能ですか?
jQuery/Javascript 経由でページをリロードせずに URL を書き換えることはできますか?
次の URL があるとします。
http://stackoverflow.com/questions/ask
値を追加できますか:/pId=XYZ
だからあなたは得ることができます
http://stackoverflow.com/questions/ask/pId=XYZ
これは可能ですか?
リダイレクトせずに変更できるのは、URLのハッシュ部分だけです。
document.location.hash = "whatever";
はい、できます。jquery は必要ありません。単に History API を使用してください: https://developer.mozilla.org/en-US/docs/DOM/Manipulating_the_browser_history
ページの状態のシリアル化、状態の読み込みなどを処理する必要があるため、通常、複雑な ajax アプリケーションで履歴を処理するのは少し面倒であることに注意してください。また、多くの ajax 化されたサイトと同様に、これを不適切に設計されたサイトに適用することはできません。また、これは IE9 のような「古い」ブラウザでは機能しません。
あなたは現在のURLを取得することができます
var url = document.location.href;
次に、パーツをURLに追加します
url += "/mySubFolder";
私の投稿の残りの部分は質問に合いませんでした...私はもっと注意深く読む必要があります:(!
はい、できますが、 pushStateを実装しているブラウザでのみ可能です。
この問題に遭遇した後、@DenysSéguretの回答はまさにあなたが必要としているものだと思います.
ブラウザでサポートされている場合は、使用できます
window.history.pushState(stateObj, title, url);
または
window.history.replaceState(stateObj, title, url);
@DenysSéguret が述べているように、ドキュメントは
https://developer.mozilla.org/en-US/docs/Web/API/History_APIにあります。