在相同的选项卡中启动下载,而无需在Javascript中打开新选项卡或窗口

时间:2012-09-11 08:20:41

标签: javascript download

我正在使用此javascript函数启动下载

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

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

4 个答案:

答案 0 :(得分:27)

function startDownload(url) {

    window.location.href = url;
}

这将在同一页面中开始下载,就像点击没有_self以外的任何目标的链接一样。

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

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

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

答案 1 :(得分:8)

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

window.location.href = url;

如果url返回可下载文件而非网页

,则可以使用此选项

答案 2 :(得分:2)

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

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

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

答案 3 :(得分:0)

<a target="_parent" href="link"></a>
  • _blank-URL已加载到新窗口中。这是默认设置
  • _parent-URL已加载到父框架中
  • _self-URL替换当前页面
  • _top-URL替换可能已加载的所有框架集名称-窗口名称