使用userAgent确定正确的下载链接

时间:2013-10-17 14:43:18

标签: html windows macos operating-system

我试图找到一个简单的userAgent脚本,它会显示一个下载图像,点击后会下载我们的安装程序文件。

如果用户在mac上,则需要显示指向install.dmg的图像,其中windows需要指向install.msi,最后,windowsxp指向install.exe

据我所知,使用userAgent请求并非最佳做法,但我们的网站只会由一组没有欺骗其代理ID的用户访问。大多数用户非常“简单”..大多数时候他们需要帮助打开他们的电脑。

我发现下面的脚本会自动下载相关文件,但是这里的管理人员不希望它自动下载,而是显示一个可点击的download.png来下载正确的安装文件。

<script type="text/javascript">// <![CDATA[
{
if((navigator.userAgent.indexOf('Win') != -1)
{ window.location.href="resources/install.msi"; }
else if(navigator.userAgent.indexOf('Mac') != -1)
{ window.location.href="resources/install.dmg"; }
else { window.location.href="resources/install.msi"; }
}
// ]]></script>

有什么想法吗?我不想为每次安装重定向到不同的页面,例如为Mac用户设置登录页面,为Windows 8用户设置登录页面等。只显示适合其操作系统的链接png文件

我在想一个document.write语句,但无法弄清楚如何显示可点击的图像。

注意:

  • 不需要移动版本,例如iPhone等。
  • 我们正在使用基于Joomla的主题,我将其列入&lt;脚本&gt;过滤器。
  • 这是一篇文章,没有重定向或任何时髦。

1 个答案:

答案 0 :(得分:0)

您可以使用document.write执行您的要求。只需将这段代码放在您希望下载映像的位置即可。

<script type="text/javascript">// <![CDATA[
    var WINDOWS_DOWNLOAD_IMAGE = "image_win.png";
    var MAC_DOWNLOAD_IMAGE = "image_mac.png";

    var WINDOWS_INSTALLER_FILE = "insall.exe"
    var MAC_INSTALL_FILE = "install.dmg"

    var ua_string = navigator.userAgent;

    if((ua_string.indexOf('Win') != -1){
        //The OS is Windows.
        document.write('<img src="' + WINDOWS_DOWNLOAD_IMAGE + '" href="' + WINDOWS_INSTALLER_FILE + '" />');
    }
    else if(ua_string.indexOf('Mac') != -1){
        //The OS is Mac.
        document.write('<img src="' + MAC_DOWNLOAD_IMAGE + '" href="' + MAC_INSTALLER_FILE + '" />');
    }
    else{
        //Other OS.
        document-write("<h1>Sorry. We don't support your OS.</h1>");
    }
// ]]></script>

大写字母变量是配置变量。

修改 抱歉。我混淆了“()”'s-     //

    var WINDOWS_INSTALLER_FILE = "insall.exe"
    var MAC_INSTALL_FILE = "install.dmg"

    var ua_string = navigator.userAgent;

    if(ua_string.indexOf('Win') != -1){
        //The OS is Windows.
        document.write('<img src="' + WINDOWS_DOWNLOAD_IMAGE + '" href="' + WINDOWS_INSTALLER_FILE + '" />');
    }
    else if(ua_string.indexOf('Mac') != -1){
        //The OS is Mac.
        document.write('<img src="' + MAC_DOWNLOAD_IMAGE + '" href="' + MAC_INSTALLER_FILE + '" />');
    }
    else{
        //Other OS.
        document-write("<h1>Sorry. We don't support your OS.</h1>");
    }
// ]]></script>

编辑2:

工作代码:

<script type="text/javascript">// <![CDATA[
    var WINDOWS_DOWNLOAD_IMAGE = "image_win.png";
    var MAC_DOWNLOAD_IMAGE = "image_mac.png";

    var WINDOWS_INSTALLER_FILE = "insall.exe"
    var MAC_INSTALLER_FILE = "install.dmg"

    var ua_string = navigator.userAgent;

    if(ua_string.indexOf('Win') != -1){
        //The OS is Windows.
        document.write('<a href="' + WINDOWS_INSTALLER_FILE + '"><img src="' + WINDOWS_DOWNLOAD_IMAGE + '"/></a>');
    }
    else if(ua_string.indexOf('Mac') != -1){
        //The OS is Mac.
        document.write('<a href="' + MAC_INSTALLER_FILE + '"><img src="' + MAC_DOWNLOAD_IMAGE + '"/></a>');
    }
    else{
        //Other OS.
        document-write("<h1>Sorry. We don't support your OS.</h1>");
    }
// ]]></script>