36

我正在使用这个 javascript 函数来启动下载

function startDownload(url) {
   window.open(url, 'Download');
}

它有效,但我想阻止任何新标签或新窗口启动,谢谢。

4

4 回答 4

56
function startDownload(url) {

    window.location.href = url;
}

这将在同一页面开始下载,就像您单击没有任何目标的链接时一样_self

要强制下载文件,请确保发送正确的标题:

Content-Disposition: attachment; filename="mypdf.pdf";

这将确保文件不会显示在浏览器中而不是被下载。将文件名部分替换为save as对话框中所需的默认文件名。

于 2012-09-11T08:23:23.637 回答
13

window.open将打开一个新窗口 \ 选项卡(取决于用户偏好)...只需下载文件使用

window.location.href = url;

如果url返回可下载文件而不是网页,则可以使用它

于 2012-09-11T08:23:15.917 回答
7

具有“下载”属性的 HTML5 解决方案

<a href="/images/myw3schoolsimage.jpg" download>

https://www.w3schools.com/tags/att_a_download.asp

于 2017-04-05T02:59:58.830 回答
3
<a target="_parent" href="link"></a>
  • _blank - URL 被加载到新窗口中。这是默认的
  • _parent - URL 被加载到父框架中
  • _self - URL 替换当前页面
  • _top - URL 替换任何可能加载的框架集 name - 窗口的名称
于 2019-01-31T07:33:19.380 回答