是的,浏览器通常会阻止使用target="_blank"来下载文件,因为这可能会导致安全问题。为了解决这个问题,可以考虑使用JavaScript或后端语言来处理文件下载。在这种情况下,可以使用XMLHttpRequest对象或类似的技术将文件传输到客户端并强制浏览器下载。以下是一个示例JavaScript函数,演示如何使用XMLHttpRequest来下载文件:
function downloadFile(url) { var xhr = new XMLHttpRequest(); xhr.open('GET', url, true); xhr.responseType = 'blob'; xhr.onload = function() { if (xhr.status === 200) { var blob = new Blob([xhr.response], {type: 'application/octet-stream'}); var url = URL.createObjectURL(blob); var a = document.createElement('a'); a.href = url; a.download = 'filename'; document.body.appendChild(a); a.click(); } }; xhr.send(); }
在上述代码中,将文件下载的URL传递给该函数后,它将向服务器发送一个GET请求。服务器将以blob形式返回文件,然后将其转换为URL。最后,将创建一个隐藏的下载链接,将其添加到文档中,并激活该链接以开始下载。