2

jQuery/Javascript 経由でページをリロードせずに URL を書き換えることはできますか?

次の URL があるとします。

http://stackoverflow.com/questions/ask

値を追加できますか:/pId=XYZ

だからあなたは得ることができます

http://stackoverflow.com/questions/ask/pId=XYZ

これは可能ですか?

4

5 に答える 5

6

リダイレクトせずに変更できるのは、URLのハッシュ部分だけです。

document.location.hash = "whatever";
于 2012-08-17T13:11:53.977 に答える
4

はい、できます。jquery は必要ありません。単に History API を使用してください: https://developer.mozilla.org/en-US/docs/DOM/Manipulating_the_browser_history

ページの状態のシリアル化、状態の読み込みなどを処理する必要があるため、通常、複雑な ajax アプリケーションで履歴を処理するのは少し面倒であることに注意してください。また、多くの ajax 化されたサイトと同様に、これを不適切に設計されたサイトに適用することはできません。また、これは IE9 のような「古い」ブラウザでは機能しません。

于 2012-08-17T13:09:30.817 に答える
1

あなたは現在のURLを取得することができます

var url = document.location.href;

次に、パーツをURLに追加します

url += "/mySubFolder";

私の投稿の残りの部分は質問に合いませんでした...私はもっと注意深く読む必要があります:(!

于 2012-08-17T13:14:52.883 に答える
1

はい、できますが、 pushStateを実装しているブラウザでのみ可能です。

ここで他の 回答 を参照してください

于 2012-08-17T13:12:44.927 に答える
0

この問題に遭遇した後、@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にあります。

于 2016-01-05T10:37:22.580 に答える