【发布时间】:2018-12-08 14:40:33
【问题描述】:
我有一个用例,如果文件可以在新选项卡中打开,它应该在新选项卡中打开。如果没有,它会以给定的名称保存(名称应该是动态设置的)。
我目前有以下sn-p:
if (windowService.navigator.msSaveOrOpenBlob) {
windowService.navigator.msSaveOrOpenBlob(file, fileName);
} else {
const link: HTMLAnchorElement = document.createElement("a") as HTMLAnchorElement;
link.href = windowService.URL.createObjectURL(file);
if (fileName) {
link.download = fileName;
}
link.target = "_blank";
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
当我使用它时,所有文件都会被下载(包括 pdf/text,否则在尝试使用 window.open() 时会在新选项卡中打开)。 我的要求是:如果文件可以在新标签中打开,它们应该在新标签中打开(例如 pdf/text 等(在尝试使用 window.open() 时会在新标签中打开) .)。 我知道我可以使用 window.open() 但这不支持将 desired name 设置为文件。
有没有办法做到这一点? 另外,在下载之前如何确定文件是否可以在新选项卡中打开?如果我知道文件无法打开,在这种情况下我会下载,否则我会在新选项卡中打开它。
【问题讨论】:
标签: javascript angular window