web-dev-qa-db-ja.com

ウィンドウのURLハッシュを別の応答に置き換えるにはどうすればよいですか?

Replaceメソッドを使用して、ハッシュされたURL(document.location.hash)を変更しようとしていますが、機能しません。

$(function(){
 var anchor = document.location.hash;
 //this returns me a string value like '#categories'

  $('span').click(function(){

     $(window).attr('url').replace(anchor,'#food');
     //try to change current url.hash '#categories'
     //with another string, I stucked here.
  });

});

ページを変更/更新したくないのですが、応答なしでURLを置き換えたいだけです。

注:href = "#food"ソリューションでこれを解決したくありません。

53
Barlas Apaydin

window.locationの代わりにlocationまたはdocument.locationを使用してください。後者は非標準です。

window.location.hash = '#food';

これにより、URLのハッシュが設定した値に置き換えられます。

参照

101

この質問 の答えを好むかもしれません。

違いは、history.replaceState()を使用するとアンカーまでスクロールせず、ナビゲーションバーでアンカーを置き換えるだけです。すべての主要なブラウザ source でサポートされています。

history.replaceState(undefined, undefined, "#hash_value")
25
arcs