下载属性不适用于safari

pea*_*ove 11 html safari macos attributes download

我在链接中使用了下载属性:

   <a style="color:white" download="myimage" href="images/myimage.jpg">Download image</a>
Run Code Online (Sandbox Code Playgroud)

它在几乎所有浏览器中都运行良好.这意味着,如果我点击链接,图像会自动下载.我在我的Mac上的safari 10.1.2中进行了测试,它工作正常.

但是在使用safari 10.0.3的朋友mac上,它无法正常工作.他说图像只是在新窗口中打开而不是下载.

为什么会发生这种情况,我该怎么做才能让它在任何地方都能运作?

IGx*_*x89 12

根据https://developer.apple.com/library/content/releasenotes/General/WhatsNewInSafari/Articles/Safari_10_1.html,它已在Safari 10.1中添加:

HTML5下载属性 锚元素的下载属性表示链接目标是下载文件的下载链接,而不是导航链接.单击具有下载属性的链接时,目标将作为文件下载.可选地,download属性的值提供文件的建议名称.

它似乎在iOS Safari 11.1中不可用,但是从我自己的测试来看,这让我有些困惑.基于它们相似的版本编号,我希望它们在标准支持方面是平等的.

  • 请注意,在Safari中指定`target`属性似乎会覆盖`download`属性(在Chrome,Firefox或Opera中似乎不是这种情况). (19认同)
  • 移动野生动物园仍然没有发货:https://caniuse.com/#feat=download (6认同)

may*_*iya 5

试试这个代码:

var element = document.createElement('a');
            var clearUrl = base64.replace(/^data:image\/\w+;base64,/, '');

            // element.setAttribute('href', 'data:attachment/image' + base64);
            element.setAttribute('href', 'data:application/octet-stream;base64,' + encodeURIComponent(clearUrl));
            element.setAttribute('download', 'filename.jpg');
            document.body.appendChild(element);
            element.click();
            document.body.removeChild(element)
Run Code Online (Sandbox Code Playgroud)

这在 safari 版本 10.0.3 中对我有用