检测Javascript中的Chrome和Safari
我希望显示消息“您没有使用Chrome,请单击此处下载Chrome。但如果使用的浏览器是Safari,我不希望显示消息。实际上,我特别希望说服使用IE(太差劲)和FF(太重)或任何其他浏览器的人(除了Safari,因为它还不错,而且任何其他可能安装在苹果操作系统上的第三方浏览器的性能都很差)改用Chrome(我的应用程序的理想选择,以获得最佳用户体验) 我找到了一个脚本,它似乎适合进行可靠的检测,但我不知道如何自定义代码:检测Javascript中的Chrome和Safari,javascript,Javascript,我希望显示消息“您没有使用Chrome,请单击此处下载Chrome。但如果使用的浏览器是Safari,我不希望显示消息。实际上,我特别希望说服使用IE(太差劲)和FF(太重)或任何其他浏览器的人(除了Safari,因为它还不错,而且任何其他可能安装在苹果操作系统上的第三方浏览器的性能都很差)改用Chrome(我的应用程序的理想选择,以获得最佳用户体验) 我找到了一个脚本,它似乎适合进行可靠的检测,但我不知道如何自定义代码: var BrowserDetect = { init: function
var BrowserDetect = {
init: function () {
this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
this.version = this.searchVersion(navigator.userAgent)
|| this.searchVersion(navigator.appVersion)
|| "an unknown version";
this.OS = this.searchString(this.dataOS) || "an unknown OS";
},
searchString: function (data) {
for (var i=0;i<data.length;i++) {
var dataString = data[i].string;
var dataProp = data[i].prop;
this.versionSearchString = data[i].versionSearch || data[i].identity;
if (dataString) {
if (dataString.indexOf(data[i].subString) != -1)
return data[i].identity;
}
else if (dataProp)
return data[i].identity;
}
},
searchVersion: function (dataString) {
var index = dataString.indexOf(this.versionSearchString);
if (index == -1) return;
return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
},
dataBrowser: [
{
string: navigator.userAgent,
subString: "Chrome",
identity: "Chrome"
},
{
string: navigator.vendor,
subString: "Apple",
identity: "Safari",
versionSearch: "Version"
}
]
};
BrowserDetect.init();
var BrowserDetect={
init:函数(){
this.browser=this.searchString(this.dataBrowser)| |“未知浏览器”;
this.version=this.searchVersion(navigator.userAgent)
||此.searchVersion(navigator.appVersion)
||“未知版本”;
this.OS=this.searchString(this.dataOS)| |“未知操作系统”;
},
searchString:函数(数据){
对于(var i=0;i回答问题…:)
如果您真的想使用它,那么只需使用BrowserDetect.browser作为指南。
我使用的代码来自
如果((BrowserDetect.browser=='Chrome')| |(BrowserDetect.browser=='Safari')){
警惕(“干得好!”);
}否则{
提醒('你住在山洞里,伙计!改变你的浏览器');
if(BrowserDetect.browser=='firefox'){
警报(“我的意思是——firefox还行,但有点重”);
}
}
为什么不正确编写web应用程序,而不强制用户使用特定的浏览器?为什么不尝试类似的方法:。然后可以进行一些小修改以显示消息。此外,强制用户使用浏览器也是个坏主意。如果必须,您应该显示更友好的消息:为了获得最佳体验,请下载并使用Google Chrome".IE已显著改进,因此不要低估它。检测功能,而不是browsers@Eric-检测浏览器,如果用户正在使用IE,则在用户脸上打一拳,然后检测功能。我不想强制使用Chrome,我只想建议。我的应用程序适用于所有浏览器,但我的实时测试显示Chrome的最佳效果。我希望没有人会反对如果我说“IE很差劲”,即使最新版本似乎没有那么糟糕,也请告诉我。人们可以自由选择,我不在乎他们的选择。主要问题是许多人“不选择”,因为他们只是使用默认安装的东西(大多数情况下)。我的目标是给出建议,因为任何“厨师”都可以建议你在肉中配酒。
<html>
<head>
<script type="text/javascript">
<!--
var BrowserDetect = {
init: function () {
this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
this.version = this.searchVersion(navigator.userAgent)
|| this.searchVersion(navigator.appVersion)
|| "an unknown version";
this.OS = this.searchString(this.dataOS) || "an unknown OS";
},
searchString: function (data) {
for (var i=0;i<data.length;i++) {
var dataString = data[i].string;
var dataProp = data[i].prop;
this.versionSearchString = data[i].versionSearch || data[i].identity;
if (dataString) {
if (dataString.indexOf(data[i].subString) != -1)
return data[i].identity;
}
else if (dataProp)
return data[i].identity;
}
},
searchVersion: function (dataString) {
var index = dataString.indexOf(this.versionSearchString);
if (index == -1) return;
return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
},
dataBrowser: [
{
string: navigator.userAgent,
subString: "Chrome",
identity: "Chrome"
},
{ string: navigator.userAgent,
subString: "OmniWeb",
versionSearch: "OmniWeb/",
identity: "OmniWeb"
},
{
string: navigator.vendor,
subString: "Apple",
identity: "Safari",
versionSearch: "Version"
},
{
prop: window.opera,
identity: "Opera",
versionSearch: "Version"
},
{
string: navigator.vendor,
subString: "iCab",
identity: "iCab"
},
{
string: navigator.vendor,
subString: "KDE",
identity: "Konqueror"
},
{
string: navigator.userAgent,
subString: "Firefox",
identity: "Firefox"
},
{
string: navigator.vendor,
subString: "Camino",
identity: "Camino"
},
{ // for newer Netscapes (6+)
string: navigator.userAgent,
subString: "Netscape",
identity: "Netscape"
},
{
string: navigator.userAgent,
subString: "MSIE",
identity: "Explorer",
versionSearch: "MSIE"
},
{
string: navigator.userAgent,
subString: "Gecko",
identity: "Mozilla",
versionSearch: "rv"
},
{ // for older Netscapes (4-)
string: navigator.userAgent,
subString: "Mozilla",
identity: "Netscape",
versionSearch: "Mozilla"
}
],
dataOS : [
{
string: navigator.platform,
subString: "Win",
identity: "Windows"
},
{
string: navigator.platform,
subString: "Mac",
identity: "Mac"
},
{
string: navigator.userAgent,
subString: "iPhone",
identity: "iPhone/iPod"
},
{
string: navigator.platform,
subString: "Linux",
identity: "Linux"
}
]
};
BrowserDetect.init();
</script>
//-->
</head>
<body>
<script type="text/javascript">
<!--
document.write('<p class="accent">You\'re using ' + BrowserDetect.browser + ' ' + BrowserDetect.version + ' on ' + BrowserDetect.OS + '!</p>');
// -->
</script>
<script type="text/javascript">
if((BrowserDetect.browser == 'Chrome') || (BrowserDetect.browser == 'Safari')) {
alert('Good job!');
} else {
alert('You are living in a cave, dude! Change your browser.');
if(BrowserDetect.browser == 'firefox') {
alert('I mean - firefox is OK, but bit heavy');
}
}
</script>
</body>
</html>