2012-02-05 5 views
1

でLOCATION.HREF私は別のhrefに(HTML5)でhistory.replaceStateまたはpushStateを実行するととJavascript

var h = location.href; 

としてLOCATION.HREF保存する場合は、H2

を言うことができますそして、私たちは時間とH2をチェックすると、あなたは彼らが同じ表示されます(ChromeとFirefoxで、私のIEはまだHTML5をサポートしていないようです)

OK、私の質問は次のとおりです。

この中

状況は、私がどのようにlocation.hrefを知っているかは、実際または偽(プッシュ)です。

[EDIT]

私はサンプルを追加:http://jsfiddle.net/W4bb3/

+1

"本物か偽"ってどういう意味ですか? – FK82

+1

*「hとh2をチェックすると、それらは同じに見えます」* - それはどういう意味ですか? –

+0

location.hrefは現在のページのURLである必要があります。 HTML5がサポートする履歴機能を実行した後、location.hrefは変更されましたが(ページがリロードされないため)、実際のページURLではないことを意味する偽装と思われます –

答えて

2

それはあなたがすべてのブラウザでは、現時点ではできないようです。 Firefoxでhistory.state方法があります:

history.pushState({'foo': 'bar'}, null, 'test') 
history.state // will return { foo="bar"} 

ですから、状態は、それがpushState経由で設定されていない場合もあろう、nullではないことをテストすることができます。

+0

ありがとうございます。 'history.state'をチェックすることは良いアイデアですが、それを動作させることはできません:http://jsfiddle.net/W4bb3/5/ –

+1

原因は、偽の値である' '' 'に対するpushState呼び出しの最初の引数を設定していますJavaScriptで。 –

+0

そうです。これはまた、この方法が信頼できないことを意味する。私は追跡目的のために第三者のサイトに置くためのスクリプトに取り組んでいます。だから私は本当のURLを取得したいと思うし、pushStateが呼び出されるかどうかわからない –