2015-06-19 6 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)». Btw 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> 

Кроме этого, неплохо для того, чтобы не знать кодирования.

Смежные вопросы