Anchor tag download attribute not working: 基于 Chrome 35.0.1916.114 的 Bug

阅读时长 3 分钟读完

在 Web 开发中,我们常常需要让用户下载文件。HTML 中的 <a> 标签提供了一个 download 属性来帮助我们实现这个功能。该属性指定了被链接资源的名称,并告诉浏览器不要打开该资源,而是应该将其下载。

上面的代码将创建一个下载链接,当用户点击该链接时,名为 myfile.pdf 的文件将被下载,并命名为 mypdf。然而,在一些旧版的 Chrome 浏览器中,这个属性却存在 Bug,无法正常工作。本文将详细探讨这个问题并提供解决方案。

Bug 表现

在 Chrome 35.0.1916.114 版本中,当使用 download 属性时,链接将被打开而不是下载。如果右键点击链接,选择“另存为”也无法弹出下载窗口。

Bug 原因

这个问题是由于 Chrome 35.0.1916.114 版本中 download 属性的 Bug 导致的。对于拥有这个版本的浏览器,如果你想通过 download 属性来下载文件,将会遇到这个问题。

解决方案

虽然这个问题会影响用户体验,但我们可以通过 JavaScript 来解决它。以下是一个跨浏览器的解决方案:

-- -------------------- ---- -------
-------- ------------- ----- -
  --- ---- - ----------------------------
  ------------------------- -----
  ----------------------------- ------

  -- ------- -----------------
  --------------------------------

  -------------

  -- ------ - -- ----- ------------- ------------- ------------
  --------------------- -
    --------------------------------
  -- ---
-

-- -----
---------------------- ---------

上面的代码创建了一个 <a> 标签,并设置其 hrefdownload 属性。然后,通过将链接插入到文档中,调用 click() 方法来模拟点击下载链接。最后,我们删除该链接以保持文档干净。

总结

在 Chrome 35.0.1916.114 版本中,存在一个与 download 属性相关的 Bug,可能会影响到用户体验。虽然这个问题比较尴尬,但我们可以通过 JavaScript 来解决它。在实现下载功能时,应该谨慎考虑兼容性问题,并且选择合适的方案来确保最佳的用户体验。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/30138

纠错
反馈