在同一选项卡中启动下载,无需在Javascript中打开新选项卡或窗口
我正在使用这个javascript函数来启动下载在同一选项卡中启动下载,无需在Javascript中打开新选项卡或窗口,javascript,download,Javascript,Download,我正在使用这个javascript函数来启动下载 function startDownload(url) { window.open(url, 'Download'); } 它可以工作,但我想阻止任何新选项卡或新窗口的启动,谢谢。窗口。打开将打开一个新窗口\tab(取决于用户偏好)。。。要下载文件,请使用 window.location.href = url; 如果url返回可下载的文件而不是网页,则可以使用此选项 function startDownload(url) {
function startDownload(url) {
window.open(url, 'Download');
}
它可以工作,但我想阻止任何新选项卡或新窗口的启动,谢谢。
窗口。打开
将打开一个新窗口\tab(取决于用户偏好)。。。要下载文件,请使用
window.location.href = url;
如果url
返回可下载的文件而不是网页,则可以使用此选项
function startDownload(url) {
window.location.href = url;
}
这将在同一页面中开始下载,就像单击除\u self
之外没有任何目标的链接一样
要强制下载文件,请确保随文件发送正确的标题:
Content-Disposition: attachment; filename="mypdf.pdf";
这将确保文件不会显示在浏览器中,而不会被下载。在
另存为对话框中将文件名部分替换为默认文件名。具有“下载”属性的HTML5解决方案
<a href="/images/myw3schoolsimage.jpg" download>
- _空白-URL加载到新窗口中。这是默认值
- _parent-URL加载到父框架中
- _self-URL替换当前页面
- _top-URL替换可能加载的任何框架集名称-窗口的名称
我的internet explorer仍然存在问题,如果我有.pdf文件,它会打开它,我的浏览器上有未加密的文件。对于chrome和firefox,它工作得非常好。你从哪里提供PDF?与PDF一起发送的MIME类型是什么?IE显示了什么?这就是我在IE中启动下载时得到的结果ÏC]äÈ•†é^qQ±]…顺便说一句,我正在使用一个HttpHandler抱歉,如果这是一个愚蠢的问题,但您将内容配置放在哪里:附件;filename=“mypdf.pdf”;?@Marcel这可能太晚了,但标题必须在目标url处设置,并且不能由Javascript设置。请参阅:@Marcel,您将其放在服务器的响应中。以下是java代码:response.ok(fileContent,“application/octet-stream”).header(“内容处置”,“附件;filename=mypdf.pdf”).build()
@vanduc1102谢谢你的代码。我已经想了很久了。在使用此解决方案之前,一定要先看看这个。Edge版本12,即Safari 10(及更早版本)或Opera版本12不支持下载属性(另外,由于它是一个javascript函数,正在启动下载,我认为创建一个链接,隐藏它,然后发送一个点击事件,对于一行javascript来说,这是一个很大的工作。。。
<a target="_parent" href="link"></a>