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

Ver*_*kis 22 javascript download

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

function startDownload(url) {
   window.open(url, 'Download');
}
Run Code Online (Sandbox Code Playgroud)

它工作,但我想阻止任何新的选项卡或新窗口启动,谢谢.

Sal*_*ter 32

function startDownload(url) {

    window.location.href = url;
}
Run Code Online (Sandbox Code Playgroud)

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

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

Content-Disposition: attachment; filename="mypdf.pdf";
Run Code Online (Sandbox Code Playgroud)

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

  • 很抱歉,如果这是一个愚蠢的问题,但你在哪里放置Content-Disposition:attachment; 文件名= "mypdf.pdf" ;? (4认同)

Man*_*eUK 9

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

window.location.href = url;
Run Code Online (Sandbox Code Playgroud)

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


Kra*_*rad 7

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

<a href="/images/myw3schoolsimage.jpg" download>
Run Code Online (Sandbox Code Playgroud)

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


小智 5

<a target="_parent" href="link"></a>
Run Code Online (Sandbox Code Playgroud)
  • _blank - URL 被加载到新窗口中。这是默认的
  • _parent - URL 加载到父框架中
  • _self - URL 替换当前页面
  • _top - URL 替换可能加载的任何框架集 name - 窗口的名称