web-applications - 使用 ajax 调用下载文件时避免触发 window.onbeforeunload

标签 web-applications onbeforeunload download

我的申请信息页面上有一个下载按钮,可以下载 pdf。我还为所有页面设置了 window.onbeforeunload 事件以启动我的加载屏幕微调器,并且 window.onunload 事件会终止加载屏幕。我遇到的问题是,当我下载我的 pdf 文件时,下载工作正常,但是 window.onbeforeunload 事件被触发而不是 window.onunload (因为我没有离开页面)。这会导致我的加载页面在我下载文件时启动并且永不停止,使页面看起来卡在下载中。

我正在使用以下 htm 和 javascript 下载我的 SystemInfo.pdf 文件:

<a href="#" onclick="SystemInfo()">Download System Info</a>

function SystemInfo(){
    var url = 'xxxxx/about/SystemInfo?isajax=true';
    window.location = formatURL(url);
}

我试图更改链接以使用“下载”属性,但这与 Safari 和 IE 不兼容,这是 Chrome 和 Firefox 的要求。我还添加了一个动态 iframe 来触发更改,但被告知这是不可取的。如果你能帮忙,请告诉我。

最佳答案

您有两种可能来正确管理 onbeforeunload 事件。您可以:

  • 添加 target="_blank": so onbeforeunload 不会被触发
  • 或在您的 javascript SystemInfo 函数中立即或在特定时间后取消您的微调器
  • stopSpinner() 或 setTimeout(stopSpinner, 1000)
  • 关于web-applications - 使用 ajax 调用下载文件时避免触发 window.onbeforeunload,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31344105/

    相关文章:

    php - 从外部服务器使用 Sendmail

    asp.net - 使用 "Unknown Exception"取消页面卸载时为 "location.href"

    blackberry - 文件下载无法在 BlackBerry 上的非 WiFi 网络上运行

    heroku 运行 rake 任务来下载文件

    java - 如何使用 java Rest 服务捕获 Angular 2 项目中的 javascript 事件

    pdf - 如何将单张 PDF 文件直接下载到我的本地设备(不导出到 Google Drive)?

    javascript - 如何通过 Selenium 处理下面的 Internet Explorer 弹出窗口 "Are you sure you want to leave this page?"

    javascript - onBeforeUnload 没有被 headless 浏览器触发

    android2.3 下载管理器

    c# - 在 ASP .Net Core Web 应用程序中读取和存储静态查找数据