这个问题与其他提供的答案不同,因为我的问题着重于VUE,是否也有一种方法可以防止默认方法。
这个问题更具体地涉及到HTML 5中的“下载”和VUE绑定的 :href,以及为什么它不能防止浏览器打开文件的默认行为。
预期行为:将文件下载到浏览器中
实际行为:在新标签页中打开文件
异常情况:只有图片、pdf和浏览器兼容的文件才会在新标签页中打开,其他文件如.exe则会像正常下载一样被下载。为什么会这样,能否在html中改变这种行为?
添加target="_blank"并不能解决这个问题。
<a :href="downloadById(item.url)" download>Download</a>
当点击上述链接时,文件将在新的浏览器标签中打开,我需要阻止这种默认行为并在单击时强制下载。HTML 5标签“download”应该解决此问题,但似乎不起作用。最近,Chrome已经废弃了使用跨域下载的下载标签功能。Vue是否有修改器可以防止此默认行为?是否有任何其他方法可以通过JavaScript或HTML下载文件?
一种提议的解决方案是将URL读取为arrayBuffer,然后在DOM中创建一个新的blob,然后创建一个锚元素并单击它。但这似乎是一种hacky的方式来强制下载文件。
我相信必须有一种更简洁的解决方案来从URL下载文件,这是一个微不足道的问题,希望有一个简单的解决方案。
谢谢。