2015-06-19 170 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> 

除此之外,對於不知道編碼的情況也不錯。