2012-05-10 3 views

答えて

1

JSを使用しなくてもハッシュ変更が発生する可能性があります。アンカーリンクをクリックするデフォルトの動作と同様に、ハッシュ変更をトリガーすることができます。

HTML5履歴オブジェクトは、JSを介してのみ操作できます。これにはpushState()replaceState()があります。一度使用すると、ブラウザの前後のbuttunはpopstate eventをトリガーします。私がHTML5の履歴について知っている他のイベントハンドラはありません。

$(window).bind("popstate", function() { 
    console.log(window.location.href); 
}); 

何かが履歴オブジェクトに状態を推進している時はいつでもあなたは、トリガーが必要な場合は、あなたがに頼る必要があり、それのためにオブザーバー(コールバック)を許可するために、これを呼び出している誰でも。

function onPushState(callback) { 
    (function(pushState) { 
     history.pushState = function() { 
      pushState.apply(this, arguments); 
      callback.apply(window, arguments); 
     }; 
    })(history.pushState); 
} 

onPushState(function() { 
    console.log(window.location.href); 
}); 

http://jsfiddle.net/Cxjey

あなたは状態を交換するのと同じ操作を行うことができます:

そうでなければ、それほど強固ではない何かの何かを試みることができます。

また、デフォルトのブラウザの動作を変更しているので、これはお勧めできません。

+0

私はpushstate機能が – einstein

+0

の作品Woho87は(クロームにも)私の作品@私はクローム – einstein

+0

を使用しているとは思わない:http://jsfiddle.net/Cxjey/ –

関連する問題