0

我试图找到一个简单的 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 的主题,我已将 < script > 过滤器列入白名单。
  • 这是在一篇文章中,没有重定向或任何时髦的东西。
4

1 回答 1

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>

带有大写字母的变量是配置变量。

编辑: 对不起。我混淆了“()”的-//

    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>
于 2013-10-17T15:02:40.487 回答