2011-07-26 13 views
40

ページを再読み込みせずにURLを変更したいと思います。私が見つけた解決策は、ブラウザがHistory.Pushstateをサポートしているかどうかを確認する方法はありますか?

window.history.pushState( 'page2'、 'タイトル'、 '/page2.php')です。

が、それらのためのソリューションが

VARのuri = window.location.hrefあるのでFirefox 3.5では、IE6 +のようないくつかのブラウザでは、この機能をサポートしていません。

ただし、ブラウザがhistory.pushstateをサポートしているかどうかを確認する方法がありますか?

TRY CATCHは可能な解決策か何か他のものですか?

答えて

78
if (history.pushState) { 
    // supported. 
} 

最短のテストは、それがサポートされていますかどうかを確認するために、ブラウザのコンソールでこれを実行することです:IEでそれは「未定義」を返しながら

if (history.pushState) { alert('supported'); } 

はまた、FF typeof(history.pushState)戻り、「機能」であることに気づく

+2

Firefoxでは、プッシュスタックに実際にヒストリがない場合(ドメインのルートになっているとき)、history.pushStateは実際には「未定義」を返します。これがバグかどうかわかりませんが、本当に面倒です。 –