0

我正在尝试构建一个下载按钮,单击该按钮时,会在新窗口中开始下载文件,同时重定向到原始窗口中的“您当前正在下载”页面。为什么我需要它以这种方式工作而不是从“您当前正在下载”页面重定向到下载文件有多种原因。

我的代码在 IE、Chrome 和 Firefox 中运行良好,但无法在 Safari 中启动 setup.exe。

jQuery(window).load(function() {
    var link = $j('#slider_download_link a')[0];
    link.href = 'setup.exe'; // This link is dependent on the browser and OS. For example, on Mac I'd link to the Mac App Store
    link.target = "_blank";
    link.onclick = RedirectToDownloadingPage;
});

function RedirectToDownloadingPage()
{
    location.href="/downloading";
    return true;
}

有什么建议么?谢谢!

4

1 回答 1

1

一旦点击处理程序被触发,页面导航就会开始,并且 Safari 显然会停止对当前页面执行任何其他操作,包括让您的链接触发。因此,延迟点击处理程序,直到链接被激活后setTimeout()

function RedirectToDownloadingPage()
{
    setTimeout(function()
    {
        location.href="/downloading";
    }, 100);
    return true;
}

在我的实验中,超时值0足够了,但为了安全起见,稍微增加一点可能是个好主意。类似的东西100应该足够了。

于 2012-08-22T00:19:06.470 回答