无需离开页面即可打开下载窗口的最简单方法(windows.open download file)

什么是最好的跨浏览器的方式来打开一个下载对话框(让我们假设我们可以设置 content-disposion:附件中的标题),而无需导航离开当前页面,或打开弹出窗口,这在 Internet Explorer 中不能很好地工作(IE)6。

什么是最好的跨浏览器的方式来打开一个下载对话框(让我们假设我们可以设置 content-disposion:附件中的标题),而无需导航离开当前页面,或打开弹出窗口,这在 Internet Explorer 中不能很好地工作(IE)6。

232

这个 javascript 很好,它不会打开一个新窗口或标签。

window.location.assign(url);
136

7 年过去了,我不知道它是否适用于 IE6,但这提示了 FF 和 Chrome 中的 OpenFileDialog。

var file_path = 'host/path/file.ext';
var a = document.createElement('A');
a.href = file_path;
a.download = file_path.substr(file_path.lastIndexOf('/') + 1);
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
42

我知道这个问题被问到7 years and 9 months ago,但许多发布的解决方案似乎不起作用,例如使用<iframe>仅适用于FireFox,不适用于Chrome

最佳解决方案:

JavaScript中打开文件下载弹出窗口的最佳working solution是使用HTML链接元素,无需将链接元素附加到document.body,如其他答案所述。

您可以使用以下函数:

function downloadFile(filePath){
    var link=document.createElement('a');
    link.href = filePath;
    link.download = filePath.substr(filePath.lastIndexOf('/') + 1);
    link.click();
}

在我的应用程序中,我使用它这样:

downloadFile('report/xls/myCustomReport.xlsx');

工作演示:

function downloadFile(filePath) {
  var link = document.createElement('a');
  link.href = filePath;
  link.download = filePath.substr(filePath.lastIndexOf('/') + 1);
  link.click();
}
downloadFile("http://www.adobe.com/content/dam/Adobe/en/accessibility/pdfs/accessing-pdf-sr.pdf");
Note:

您必须使用link.download属性,以便浏览器不会在新选项卡中打开文件并触发下载弹出窗口。

这是用几种文件类型(docx,xlsx,png,pdf,...)测试的。

29

我总是在下载链接中添加一个 target =“_blank”,这将打开一个新窗口,但是一旦用户单击保存,新窗口就会关闭。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(492)
如何在vim中键入黑洞寄存器命令“_d
上一篇
现在根据服务中的详细级别控制在系统日志中记录哪个脚本(gs log)
下一篇

相关推荐

  • 无需离开页面即可打开下载窗口的最简单方法(windows.open download file)

    什么是最好的跨浏览器的方式来打开一个下载对话框(让我们假设我们可以设置 content-disposion:附件中的标题),而无需导航离开当前页面,或打开弹出窗口,这在 Internet Explorer 中不能很好地工作(IE)6。…

    2022-12-16 14:30:45
    0 90 72
  • win7修改默认程序:如何在Windows 7中修改默认程序

    打开“控制面板”,点击“程序”,然后选择“默认程序”;在“默认程序”中,选择要修改的文件类型,然后点击“更改程序”;…

    2023-01-16 13:19:47
    0 27 96
  • win10删除休眠文件:如何在Windows 10上删除休眠文件

    以管理员身份运行cmd,输入以下代码:-h off…

    2023-01-04 07:38:07
    0 45 35
  • Linux中scp:从Linux到Windows的 scp

    关于Linux中scp的问题,在linux file share to windows中经常遇到,我正在 Windows 机器上运行 putty 客户端以成功连接到 Linux 盒。现在我希望能够将文件从 Linux 机器上的路径/home/ubuntu/myfile复制到本地计算机上的C:/Users/Anshul/Desktop。Windows 机器上的用户是anshul。我在 putty 上发出以下命令,但它不起作用:…

    2022-11-28 05:27:28
    0 61 22
  • Hot man:Windows的“man”程序(打开UNIX手册页的程序)在哪里

    关于Hot man的问题,在windows man中经常遇到,我正在寻找 linux 人(手动阅读器)的 Windows 可执行文件。…

    2022-12-19 13:20:21
    0 66 88
  • 把linux装在u盘上:在U盘上安装.msi(windows installer on usb drive)

    关于把linux装在u盘上的问题,在windows installer on usb drive中经常遇到,我最近一直在尝试将 Core Game Engine 安装在 USB 记忆棒上,因为我的 C 驱动器上的空间不足。当我运行 CoreLauncherInstall.exe 并将 USB 记忆棒设置为安装目录时,出现错误:“安装目录必须位于本地硬盘驱动器”。任何解决方法的想法?到目前为止,我已经尝试从文件中…

    2022-12-20 08:39:30
    0 48 95
  • 如何在Windows或Linux上安装 dns-sd命令行测试工具

    Stuart Cheshire 和 Daniel H.Steinberg 于 2005 年出版的《零配置网络-明确指南》一书描述了适用于 macOS 、 Windows 和 Linux 的dns-sd命令行测试工具。在第 6 章(第 92 页)的开头,他描述了该工具,但它不是有关如何下载和安装存储库的明确指南,可从 Darwin…

    2022-11-22 11:37:02
    0 75 59
  • 如何在Windows或Linux上安装 dns-sd命令行测试工具

    Stuart Cheshire 和 Daniel H.Steinberg 于 2005 年出版的《零配置网络-明确指南》一书描述了适用于 macOS 、 Windows 和 Linux 的dns-sd命令行测试工具。在第 6 章(第 92 页)的开头,他描述了该工具,但它不是有关如何下载和安装存储库的明确指南,可从 Darwin…

    2022-11-20 12:21:20
    0 37 60

发表评论

登录 后才能评论

评论列表(74条)