回答:
HTML5では、リロードせずにURLを変更できます。
ブラウザの履歴に新しい投稿を作成する場合(つまり、戻るボタンが機能します)
window.history.pushState('Object', 'Title', '/new-url');
元に戻せずにURLを変更したいだけの場合
window.history.replaceState('Object', 'Title', '/another-new-url');
オブジェクトはajaxナビゲーションに使用できます。
window.history.pushState({ id: 35 }, 'Viewing item #35', '/item/35');
window.onpopstate = function (e) {
var id = e.state.id;
load_item(id);
};
詳細はこちら:http : //www.w3.org/TR/html5-author/history.html
代替ソリューション:https : //github.com/browserstate/history.js
連中がすでに言っていることに追加するには、onclick関数で必要なURLと一致するようにwindow.location.hashプロパティを編集します。
window.location.hash = 'category-name'; // address bar would become http://example.com/#category-name
セキュリティ上の理由から、URLに移動せずにアドレスバーを完全に異なるURLに直接操作することは許可されていません。
www.mysite.com/products/#{selectedCat}
つまり、同じページ内のアンカースタイルリンクは、現在ほとんどのJavaScriptライブラリに存在するさまざまな履歴/「戻るボタン」スクリプトを調べます。
更新パネルについての言及は、あなたがasp.netを使用していると推測します。その場合、asp.net ajax履歴コントロールが開始するのに適した場所です
アドレスバーの直感的ではない誤用であり、フィッシング攻撃を助長する可能性があるため、これは可能ではないと思います(少なくとも完全に異なるアドレスに変更します)。
「window.location.hash」
sanchothefatによって提案されているように、それを行う唯一の方法である必要があります。私がこの機能を見たすべての場所のため、それは常にURL内の#の後です。
path
やquery string
URLを変更します。プロトコル、ドメイン、ポートを変更することはできません(他の人が指摘したように、これはセキュリティ上の問題になるため)。上記のhash
関数は、アンカー(またはフラグメントID)を変更することができます