私はさまざまなスクリプトで遊んでいましたが、Chrome以外のすべてで機能するスクリプトを見つけました...これは、.CSSファイルで異なるために使用しているコードです。ブラウザ名を「Chrome」にしてみましたが、うまくいきませんでした。
if (browser == 'Firefox') {
document.write('<link rel="stylesheet" href="../component/fireFoxdefault.css" />');
}
if (browser == 'Safari') {
document.write('<'+'link rel="stylesheet" href="../component/default.css" />');
}
クロムを検出するには、以下を使用します。
var isChrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
ソース: http://davidwalsh.name/detecting-google-chrome-javascript
更新(2015-07-20):
上記の解決策が常に機能するとは限りません。より信頼性の高い解決策は この回答 (以下を参照)にあります。そうは言っても、私は ブラウザの検出を避け、代わりに機能の検出を使用します :
var isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
次のように、chrome)専用のcssファイルを含めることができます。
if (isChrome) {
document.write('<'+'link rel="stylesheet" href="../component/chromeDefault.css" />');
}
更新(2014-07-29):
@gillescには、Chromeを検出するためのよりエレガントな提案があります。これは、彼が以下のコメントに投稿したものであり、これについても表示できます 質問 。
var isChrome = !!window.chrome
Chromeの更新:Chrome 38(iOS 8.1でテスト済み) !!window.chrome
でfalseを返します。これを修正するには、次を使用できます。
function isChrome(){
var windowChrome = !!window.chrome;
if(!windowChrome){
// Chrome iOS specific test
var pattern = /crios/i;
return pattern.test(window.navigator.userAgent);
}else{
return windowChrome;
}
}
グーグル 参照 問題について
これが2つの簡単なメソッドです。1つはindexOfを使用し、もう1つはtestを使用します。
// first method
function check_chrome_ua() {
var ua = navigator.userAgent.toLowerCase();
var is_chrome = /chrome/.test(ua);
return is_chrome;
}
// second method */
function check_chrome_ua2() {
var ua = navigator.userAgent.toLowerCase();
var is_chrome = ua.indexOf("applewebkit/") != -1 && ua.indexOf("khtml") > - 1;
return is_chrome;
}
alert(check_chrome_ua()); // false or true
alert(check_chrome_ua2()); // false or true
chromeがこれらの2つのブール関数のいずれかで使用されているかどうかを確認した後、スタイルシートを変更するメソッドを実装できます。