GET
パラメータをページURLに追加したいとします。私はこのようなコンテンツをロードしています:ajaxリクエストでURLを変更する
$("#content").load("shop.pl #content .product", $.param({categ:1)}));
私は同じパラメータ?categ=1
を持つようにURLを変更するにはどうすればよいですか?
GET
パラメータをページURLに追加したいとします。私はこのようなコンテンツをロードしています:ajaxリクエストでURLを変更する
$("#content").load("shop.pl #content .product", $.param({categ:1)}));
私は同じパラメータ?categ=1
を持つようにURLを変更するにはどうすればよいですか?
あなたはこれを達成するためにHTML5 pushState APIを使用することができます。しかし、最新のブラウザだけがそれをサポートしています。IEはまだIE9でサポートしていません。これを事前に行う方法はなかった。しかし、location.hashを使用して、ajaxリクエストによって状態が変更されたページを示すという規則があります。ページの状態を示すためにURLハッシュを使用する方法の詳細については、thisをご覧ください。
プッシュステートへの移行に使用できるライブラリHistory.jsがあります。 APIはpushState APIに非常に近いですが、ブラウザがpushStateをサポートしていない場合、透過的にハッシュフラグメントのフォールバックを提供します。
私と同じアイデアのために+1(私は質問を編集していました!): – andyb
10x私はhistory.jsを試してみます – bliof
pushState APIリンクが壊れています – michaelsnowden
pushState()
メソッドを使用して表示URLを操作できます(documentationを参照してください。onpopstate
eventもお読みください)。
このようにして、希望の方法でURLを変更することができます。
ページのリロードなしにURLを変更する方法についていくつかのデモはここにある:http://html5demos.com/history
内容をAJAXを介してロードされているので、おそらくURLは、それが修正さハッシュフラグメントだ持っている必要があります - http://code.google.com/web/ajaxcrawling/docs/specification.html
OPは現在のウェブサイトのGETパラメータを変更したいURLのハッシュ部分、私は信じています。 – Tadeck
はい、これは、HTML5 pushState APIをサポートしていないブラウザーでは不可能です。これは、基本的に最新のブラウザー以外のすべてです。 URLのハッシュフラグメントを操作するのは、ウェブページの変更された状態を示して復元するためのものです。 –
ないページを変更せずにそれを行うことができることを確認を参照してください。 – Nalum