2016-06-11 10 views
-1

ブラウザの名前/バージョンがリストにない場合、顧客を別のWebページにリダイレクトする必要があります。ブラウザのバージョンによってリダイレクト

私の質問への回答はこちらですHow can you detect the version of a browser?しかし、私はそれを理解していません。

私は、これは私が

ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) 

を探していますがnavigator.userAgentでマッチを探しますが、私は正規表現を理解していないものだと思います。

第3の選択肢として、私はこれを読もうとしていますが、私はそれも理解していません。

if(M[1]=== 'Chrome'){ 
     tem= ua.match(/\b(OPR|Edge)\/(\d+)/); 
     if(tem!= null) return tem.slice(1).join(' ').replace('OPR', 'Opera'); 
} 

誰でも簡単に説明できますか?

答えて

0

正規表現は、テキストを検索する簡単な方法です。欠点は、彼らは非常に古風なことです。 http://www.regular-expressions.info/でチュートリアルを繰り返し読んで練習すれば、数週間で正規表現を学ぶことができます。

ここで誰もがブラウザのテキストを見つけるために正規表現を書こうとしていましたが、そのほとんどはユーザエージェントの文字列がすでに読みにくいためです。user agent文字列です。それについてはhttp://www.useragentstring.com/で学ぶことができます。

ご覧のとおり、文字列のテキストはすべて、あなたのウェブサイトにアクセスするためにどのブラウザが使用されているかを説明しています。したがって、正規表現のほとんどは単にブラウザ名を検索しようとしています。 2番目の例では

これは特に顕著である:正規表現で

opera|chrome|safari|firefox|msie|trident 

、パイプがorを表すために使用されているので、上記のopera or chrome or safari or firefox or msie or trident氏は述べています、あなたはmsieは、MicrosoftのInternet Explorerを意味することを知っているかもしれないので、あなたが見ることができますそれは単にブラウザのリストです。

簡単にできることは、文字列を検索することです。 javascriptではindexOfが使用されていますが、ブラウザの名前がif文などで理解できない場合に、ユーザエージェント文字列にフォールバックブラウザが表示されることがあります。

クロムブラウザを探していた場合、このようなことが起きる可能性があります。

if (navigator.userAgent.toLowerCase().indexOf('chrome') > -1) { 
    // do stuff with chrome 
} 

希望するものがあります。

+0

これは役に立ちます。どうもありがとうございました。 –

+0

"user.agent string"以外のブラウザの特性を調べる方法はありますか? –

+1

他の方法があります。真実は、ユーザーエージェントの文字列は、ユーザーと同じ信頼性があります。彼らがここでどうやっているのかチェックしてください。http://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser – deltree

関連する問題