我在网上找到了一些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>
答案 0 :(得分:0)
尝试在JavaScript中确定浏览器总是很棘手且永远不可靠。在您的情况下它不起作用,因为Firefox中的navigator.appName
(至少版本12.0)返回... "Netscape"
。
使用navigator.userAgent
可以更加可靠,它会在我的计算机上返回""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";
答案 1 :(得分:0)
我最喜欢的脚本就是这个 - http://www.quirksmode.org/js/detect.html大多数现代库都内置了浏览器检测功能(例如jQuery browser对象)
但强烈建议使用功能检测而不是浏览器检测。看一下Modernizr库,作为我正在谈论的一个很好的例子。
答案 2 :(得分: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>
答案 3 :(得分:0)
由于以上脚本都没有在足够的情况下工作,包括基本的重定向到“Firefox 37.x”(!!) - 最糟糕的是“Google Chrome”(非常顽固) - ,现在:我发现的唯一“老派”*方法工作:
http://www.javascripter.net/faq/browsern.htm
下面:我的修改(快速/脏/欢迎您清理它)“版本”,因为我们想要的是重定向,而不是显示浏览器代码名称等。
我认为任何阅读此内容的人都明白,对象检测/浏览器功能检测现在(2015年9月)被提升为一种更好的方法 - 除了......这个:
首先,它也不是100%可靠;最重要的是,人们可能想要更简单的方法,或者更快,特别是当需要修改现有网站(尽可能稍微)时,而不是必须重新编码几乎eveything,切换到CSS等等,...年龄!
使用:http://www.w3schools.com/html/tryit.asp?filename=tryhtml_default
进行测试(http://stackoverflow.com作为测试重定向网址似乎不起作用,在W3schools页面上,既不是Google的,也不是个人网站的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>