-2

我在网上找到了一些 HTML 代码来帮助我做到这一点,但是当我在 Firefox 或 Internet Explorer 上尝试时它不起作用。我能得到一些帮助来尝试实现这一目标吗?

这是我找到的代码

    <script language="JavaScript" type="text/JavaScript">
    if(navigator.appName == "Mozilla")
    {
     window.location = "ff/index.html"
    }
     if(navigator.appName == "Microsoft Internet Explorer")
    {
     window.location = "ie/index.html"
    }
     if(navigator.appName == "Google Chrome")
    {
     window.location = "ch/index.html"
    }
     if(navigator.appName == "Safari")
    {
     window.location = "sa/index.html"
    }
     if(navigator.appName == "Google Chrome")
    {
     window.location = "ch/index.html"
    }
     window.location == "un/index.html"
    </script>
4

4 回答 4

0

试试这个代码 -

<script language="JavaScript" type="text/JavaScript">
    if(navigator.appCodeName == "Mozilla")
    {
     window.location.href = "ff/index.html"
    }
     if(navigator.appCodeName == "Microsoft Internet Explorer")
    {
     window.location.href = "ie/index.html"
    }
     if(navigator.appCodeName == "Google Chrome")
    {
     window.location.href = "ch/index.html"
    }
     if(navigator.appCodeName == "Safari")
    {
     window.location.href = "sa/index.html"
    }
     if(navigator.appCodeName == "Google Chrome")
    {
     window.location.href = "ch/index.html"
    }
     window.location.href = "un/index.html"
    </script>
于 2012-06-03T11:46:31.817 回答
0

试图在 JavaScript 中确定浏览器总是很棘手,而且从不可靠。在您的情况下,它不起作用,因为navigator.appName在 Firefox(至少版本 12.0)中返回"Netscape"...。

更可靠的是使用navigator.userAgentwhich 返回:""Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:12.0) Gecko/20100101 Firefox/12.0""在我的电脑上。

更好的是,请查看$.browser-出于某种原因已弃用,请参见上文。

这给我们带来了一个问题:你为什么需要这个?现代 Web 应用程序应该发现浏览器功能,而不是依赖于实际的浏览器。

PS:你粘贴的代码真的很冗长,这个等效的片段呢?

var redirects = {
    "Mozilla": "ff",
    "Microsoft Internet Explorer": "ie",
    "Google Chrome": "ch",
    "Safari": "sa",
    "Google Chrome": "ch"
};

window.location = (redirects[navigator.appName] || "un") + "/index.html";
于 2012-06-03T11:02:09.160 回答
0

我最喜欢的脚本是这个 - http://www.quirksmode.org/js/detect.html大多数现代库都内置了浏览器检测(例如 jQuery浏览器对象)

但是,强烈建议使用特征检测而不是浏览器检测。看看Modernizr库作为我正在谈论的一个很好的例子。

于 2012-06-03T11:02:38.187 回答
0

由于上述脚本在足够的情况下都不起作用,包括重定向到“Firefox 37.x”(!!)这样基本的脚本——最糟糕的是“谷歌浏览器”(非常顽固)——现在:唯一的“老派” *我发现工作的方法:

http://www.javascripter.net/faq/browsern.htm

下面:我修改的(快速/脏的/欢迎您清理它)“版本”,因为我们在这里想要的是重定向,而不是显示浏览器代码名称等。

  • 注意:作者 KWOWS,关于整个方法的缺陷 - 并警告。

我假设任何读过这篇文章的人都明白对象检测/浏览器功能检测现在(2015 年 9 月)被推广为一种更好的方法——除了......这个:

首先,它也不是 100% 可靠的;而且,最重要的是,人们可能想要一种更简单或更快的方法,特别是当需要修改现有网站(尽可能少)时,而不是必须重新编码几乎所有内容,切换到 CSS 等等,因为.. .年龄!

测试使用:http ://www.w3schools.com/html/tryit.asp?filename=tryhtml_default

http://stackoverflow.com作为测试重定向 URL 似乎不起作用,在那个 W3schools 页面上,谷歌也没有,而个人网站 URL 工作)

 .  

<!DOCTYPE html><html><head>
<script language="JavaScript" type="text/JavaScript">

var nVer = navigator.appVersion;
var nAgt = navigator.userAgent;
var browserName  = navigator.appName;
var fullVersion  = ''+parseFloat(navigator.appVersion); 
var majorVersion = parseInt(navigator.appVersion,10);
var nameOffset,verOffset,ix;

// In Opera 15+, the true version is after "OPR/" 
if ((verOffset=nAgt.indexOf("OPR/"))!=-1) {
 browserName = "Opera";
 fullVersion = nAgt.substring(verOffset+4);
}
// In older Opera, the true version is after "Opera" or after "Version"
else if ((verOffset=nAgt.indexOf("Opera"))!=-1) {
 browserName = "Opera";
 fullVersion = nAgt.substring(verOffset+6);
 if ((verOffset=nAgt.indexOf("Version"))!=-1) 
   fullVersion = nAgt.substring(verOffset+8);
}
// In MSIE, the true version is after "MSIE" in userAgent
else if ((verOffset=nAgt.indexOf("MSIE"))!=-1) {
 browserName = "Microsoft Internet Explorer";
 fullVersion = nAgt.substring(verOffset+5)
window.location.href = "http://stackoverflow.com"
}
// In Chrome, the true version is after "Chrome" 
else if ((verOffset=nAgt.indexOf("Chrome"))!=-1) {
 browserName = "Chrome";
 fullVersion = nAgt.substring(verOffset+7)
window.location.href = "http://www.w3schools.com"
}
// In Safari, the true version is after "Safari" or after "Version" 
else if ((verOffset=nAgt.indexOf("Safari"))!=-1) {
 browserName = "Safari";
 fullVersion = nAgt.substring(verOffset+7);
 if ((verOffset=nAgt.indexOf("Version"))!=-1) 
   fullVersion = nAgt.substring(verOffset+8);
}
// In Firefox, the true version is after "Firefox" 
else if ((verOffset=nAgt.indexOf("Firefox"))!=-1) {
 browserName = "Firefox";
 fullVersion = nAgt.substring(verOffset+8)
window.location.href = "http://stackoverflow.com"
}
// In most other browsers, "name/version" is at the end of userAgent 
else if ( (nameOffset=nAgt.lastIndexOf(' ')+1) < 
          (verOffset=nAgt.lastIndexOf('/')) ) 
{
 browserName = nAgt.substring(nameOffset,verOffset);
 fullVersion = nAgt.substring(verOffset+1);
 if (browserName.toLowerCase()==browserName.toUpperCase()) {
  browserName = navigator.appName;
 }
}
// trim the fullVersion string at semicolon/space if present
if ((ix=fullVersion.indexOf(";"))!=-1)
   fullVersion=fullVersion.substring(0,ix);
if ((ix=fullVersion.indexOf(" "))!=-1)
   fullVersion=fullVersion.substring(0,ix);

majorVersion = parseInt(''+fullVersion,10);
if (isNaN(majorVersion)) {
 fullVersion  = ''+parseFloat(navigator.appVersion); 
 majorVersion = parseInt(navigator.appVersion,10);
}

</script></head><body>
于 2015-09-06T02:33:16.797 回答