2015-06-19 173 views
0

我是新来的,我很抱歉,如果这个问题是基本/愚蠢的。我不太熟悉编码,所以请原谅我的无知/明显的错误。我试图使用在线发现的代码片段将它们组合在一起,幸运的是,我不必为此项目编写太多代码。基于操作系统的重定向

我想基于操作系统自动重定向用户,并且我正在努力实现这一目标。这是我正在尝试使用的代码...假设我什么也不知道!

<head> 
<script type="text/javascript"> 
<!-- 
var OSName="Unknown OS"; 
if (navigator.appVersion.indexOf("Win")!=-1) OSName="Windows"; 
if (navigator.appVersion.indexOf("Mac")!=-1) OSName="MacOS"; 
if (navigator.appVersion.indexOf("X11")!=-1) OSName="UNIX"; 
if (navigator.appVersion.indexOf("Linux")!=-1) OSName="Linux"; 

if(OSName == "Windows") 
{ 
window.location="http://www.driveweb.com/download-savvy-windows-free/"; 
} 
else if (OSName == "MacOS") 
{ 
window.location="http://www.driveweb.com/download-savvy-mac-free/"; 
} 
else if (OSName == "UNIX") 
{ 
window.location="http://www.driveweb.com/download-savvy-linux-free/"; 
} 
else if (OSName == "Linux) 
{ 
window.location="http://www.driveweb.com/download-savvy-linux-free/"; 
} 
else 
{ 
window.location="http://driveweb.com/download-savvy-select/"; 
} 
//--> 
</script> 
</head> 

再次感谢,我衷心感谢您的帮助!

+1

那么,你有什么问题? –

+0

只是没有按预期工作。看起来我已经明白了,非常感谢! – PaintedMidget

+0

我在Ubuntu的Firefox,navigator.appVersion是“5.0(X11)”。顺便说一句navigator.appVersion是[弃用](https://developer.mozilla.org/en-US/docs/Web/API/NavigatorID/appVersion),所以要小心。 –

回答

0

改用用户代理,因为appVersion是deprecated

function detectOS(){ 
    if (navigator.userAgent.indexOf("Win")!=-1) return "Windows"; 
    if (navigator.userAgent.indexOf("Mac")!=-1) return "MacOS"; 
    if (navigator.userAgent.indexOf("Linux")!=-1) return "Linux"; 
    if (navigator.userAgent.indexOf("OpenBSD")!=-1) return "OpenBSD"; 
    if (navigator.userAgent.indexOf("FreeBSD")!=-1) return "FreeBSD"; 
    if (navigator.userAgent.indexOf("NetBSD")!=-1) return "NetBSD"; 
    return undefined; 
} 
0

这看起来是正确的,虽然你有你在哪里丢失的报价缺少Linux

else if (OSName == "Linux")

+0

完美!看起来这是固定它。简直不敢相信那是错的,哈哈我期待着回复我的代码,因为它是非常错误的。我真的不知道我在这里做什么......再次感谢! :d – PaintedMidget

0

除了关闭的引号语法错误如下如果elseif的消除,你可以优化的代码:

<head> 
<script type="text/javascript"> 
if (navigator.appVersion.indexOf("Win")!=-1) window.location="http://mywindowsbased.url"; 
if (navigator.appVersion.indexOf("Mac")!=-1) window.location="http://myMACbased.url"; 
if (navigator.appVersion.indexOf("X11")!=-1) window.location="http://mX11based.url"; 
if (navigator.appVersion.indexOf("Linux")!=-1) window.location="http://mLinuxbased.url"; 
</script> 
</head> 

除此之外,对于不知道编码的情况也不错。