基于操作系统的重定向
Redirect based on operating system
我是新来的,如果这个问题是 basic/stupid,我深表歉意。我不太熟悉编码,所以请原谅我的 ignorance/glaring 错误。我尝试使用在线找到的代码片段将其组合在一起,幸运的是我不必为这个项目编写太多代码。
我正在尝试根据操作系统自动重定向用户,但我真的很难做到这一点。这是我尝试使用的代码...假设我什么都不知道!
<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>
再次感谢,非常感谢您的帮助!
这看起来是正确的,尽管您有一个语法错误,您缺少 Linux
的结束引号
else if ( OSName == "Linux" )
除了缺少引号外,您还可以按如下方式优化代码以消除 if 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>
除此之外,还不错,因为不太了解编码。
改用用户代理,因为 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;
}
我是新来的,如果这个问题是 basic/stupid,我深表歉意。我不太熟悉编码,所以请原谅我的 ignorance/glaring 错误。我尝试使用在线找到的代码片段将其组合在一起,幸运的是我不必为这个项目编写太多代码。
我正在尝试根据操作系统自动重定向用户,但我真的很难做到这一点。这是我尝试使用的代码...假设我什么都不知道!
<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>
再次感谢,非常感谢您的帮助!
这看起来是正确的,尽管您有一个语法错误,您缺少 Linux
else if ( OSName == "Linux" )
除了缺少引号外,您还可以按如下方式优化代码以消除 if 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>
除此之外,还不错,因为不太了解编码。
改用用户代理,因为 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;
}