【问题标题】:Is it possible to initiate a download prompt in the browser for recognized MIME types using only JavaScript (client-side approach)?是否可以仅使用 JavaScript(客户端方法)在浏览器中为已识别的 MIME 类型启动下载提示?
【发布时间】:2011-12-07 11:44:43
【问题描述】:

我希望允许用户通过单击直接下载文件。然而,当涉及到已知的 MIME 类型(如 HTML、音频、视频等)时存在问题。理想情况下,我想触发音频/视频文件的下载提示。最终,我也想为 HTML 文档做这件事。主要思想是让用户无需导航到上下文菜单即可轻松下载文件。

我认为例如对于那些对计算机及其主要功能不太熟悉的人。这些人肯定会喜欢比“另存为”更好的方式。

我寻找 JavaScript 解决方案的原因是 PHP 方法仅在您处于网站环境中时才有效。每当您在插件或注入脚本上下文中(即为 Firefox、Chrome 或 Safari 开发插件)时,您可能希望避免请求服务器端响应。

我尝试使用window.open()document.execCommand("saveAs",... 来实现这一点。它确实有效,尽管它会出现故障并且对于大文件会失败。

然后,我尝试了Downloadify,但并非在所有情况下都有效。

是否有纯 JavaScript、无 Ajax 方式来触发下载提示,以便用户可以通过简单的左键单击直接下载文件?

【问题讨论】:

    标签: javascript download


    【解决方案1】:

    如果现在有人提出这个问题,最好的解决方案是

    <a href="example" download target="_blank">
    

    如果浏览器支持 HTML5 属性 download 将开始下载文件,否则(在 Internet Explorer 和旧浏览器的情况下)该链接将打开另一个选项卡窗口,其中包含要下载的文件。

    【讨论】:

      【解决方案2】:

      您可以使用&lt;a href="example" download&gt;。这是 HTML5,它适用于 Chrome、Firefox 和 Edge(但不适用于 Internet Explorer,甚至不是现代版本)。

      【讨论】:

        【解决方案3】:

        HTML5 中有一个新的download 属性,您可以使用它来注释链接。它向浏览器指示应该下载资源而不是导航到该资源。目前,它仅适用于 Chrome,但它是 HTML 规范的一部分,有望很快被其他浏览器采用。

        演示:http://html5-demos.appspot.com/static/a.download.html 更多信息:http://updates.html5rocks.com/2011/08/Downloading-resources-in-HTML5-a-download

        【讨论】:

        猜你喜欢
        • 2013-11-15
        • 2021-04-23
        • 2011-06-13
        • 1970-01-01
        • 2018-09-09
        • 2014-03-03
        • 2010-11-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多