2012-03-30 9 views
0

jQueryのbbqプラグインを見ていて、コード内のどこにでもdocument.hashという言葉が見つかりませんでした。jQuery bbq ...グリルはどこですか?

私はハッシュを得ることがライン1094であると仮定します。

function get_fragment(url) { 
    url = url || location.href; 
    return '#' + url.replace(/^[^#]*#?(.*)$/, '$1'); 
}; 

そして818でハッシュを設定するしかし、なぜ代わりにlocation.hashのものでしょうか?

またthisとの契約何:

jq_bbq.pushState = jq_bbq_pushState = function(params, merge_mode) { 

jq_bbq_pushState = function...が十分ではないでしょうか?

答えて

3

location.hashの2つ目の点についてはわかりませんが、以前のバージョンのブラウザではlocation.hashに問題があった可能性があります。
私のの推測は、自分が実装したので、hashプロパティに依存する必要があるということです。
Googleでie6 location.hashを検索した場合、多くの不平があることを知るために情報を掘り起こす必要はありません。

+0

実際、pushStateは新しいブラウザ履歴メソッドで、履歴を手動で操作してブラウザの状態を保存することができます。 https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history#The_pushState().C2.A0modod – Wil

+0

@WilliamGolden混乱して申し訳ありませんが、私は質問の2番目の点を指していました。 1つは 'location.hash'です。更新を参照してください。 –

1

document.hashが存在しないため、document.location.hashでハッシュにアクセスできます。 get_fragment関数も同じことをしているようです。 私は、document.location.hashについて知りませんでしたので、作者がカスタム関数を使用したと推測しています。

jq_bbq.pushState = jq_bbq_pushState = function(params, merge_mode) { 

これはjq_bbq名前空間/オブジェクトに機能を追加し、また、ローカル変数jq_bbq_pushStateでそれを参照することができます。

+0

'jq_bbq.pushState'はグローバルでローカルですか?また、Ben defは 'location.hash'を知っていた – qwertymk

+0

bbqがウィンドウへの参照でない限り、グローバルではありませんが、私はそれを考えません。 (私はちょうどコードからこれを差し引いています、私はフレームワークを知らない) これは、jq_bbq名前空間を介してプライベート関数を公開したいと思った結果可能性があります。 –