$ .browserがjQueryの1.9から削除されたので、ブラウザーを検出する同様の方法を探していますか?
phpのget_browerを使おうとしましたが、常に「デフォルトブラウザ」として返されました。
更新:jquery.supportを調べましたが、有用な情報が提供されませんでした
代わりに機能検出を使用してください(jQuery.supportを参照)
<?php
echo $_SERVER['HTTP_USER_AGENT'];
?>
次に、caseまたはifを選択するか、必要な結果を正規表現します。
ご指摘のとおり、userAgentの検索は信頼できない場合があります。しかし、基本的には、機能検出を使用したくない場合は、これを行う必要があります。残りはすでにここで言われています
私もjQueryの$.browser検出が恋しいです。$ .supportの方が多くの場合に意味があることは理解していますが、最初はブラウザー検出を使用してcssプレフィックスプロパティを取得しました。これは、3つのプレフィックスすべてを使用する代わりに、条件付きスタイルを適用する場合に意味があります。または、IEのバージョンのみに基づくIE6-9の-pie-プレフィックスを追加することもできます。
これが私が使用する関数のモデルであり、jQueryの非推奨の$.browserを採用したものです。
nav = navigation;
nav.detectBrowser = function() {
var t = this,
a = this.userAgent.toLowerCase(),
match = /(chrome)[ \/]([\w.]+)/.exec(a) ||
/(webkit)[ \/]([\w.]+)/.exec(a) ||
/(firefox)[ \/]([\w.]+)/.exec(a) ||
/(msie) ([\w.]+)/.exec(a) ||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a) ||
a.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a) || [];
t.browser = match[1] || false;
t.version = match[2] || "0";
if (t.browser) t[match[1]] = true;
if (t.msie)
t.ie = parseInt(t.version);//ie main version or false if not IE
else if (t.chrome)
t.webkit = true;//chrome is webkit
else if (t.webkit)
t.safari = true;
t.pre = t.webkit ? '-webkit-' : t.firefox ? '-moz-' : t.ie > 7
? '-ms-' : t.opera ? '-o-' : '';//css prefix
}
nav.detectBrowser();
例としてwindow.navigationグローバルオブジェクトを使用していることに注意してください。ここで、古い$.browserオブジェクトは「nav」または「window.nav」になります。nav.preはcss3機能のブラウザプレフィックスであり、nav.ieはIEの場合はInternetExplorerバージョンの整数です。
次のようにInternetExplorerを検出できます。
<!--[if IE]>
<![endif]-->
モバイルブラウザは、次のツールで検出できます:http: //detectmobilebrowsers.com/