Javascript 铬上msSaveOrOpenBlob的替代品

Javascript 铬上msSaveOrOpenBlob的替代品,javascript,angular,google-chrome,internet-explorer,mozilla,Javascript,Angular,Google Chrome,Internet Explorer,Mozilla,我需要找到“msSaveOrOpenBlob”的替代品 ,在IE上工作,用于Firefox和Chrome。尤其是在Chrome上,该选项不起作用,并且不显示选择保存还是打开文件的对话框 您能建议我如何打开对话框,让用户选择是否要保存或打开文件吗 我实际使用的是Angular 6。方法仅适用于IE浏览器。适用于其他浏览器(如Mozilla和Chrome)的方法在IE浏览器中不起作用 您需要使用代码检测IE浏览器,然后尝试使用msSaveOrOpenBlob方法。如果浏览器不是IE,则可以使用适用于

我需要找到“msSaveOrOpenBlob”的替代品 ,在IE上工作,用于Firefox和Chrome。尤其是在Chrome上,该选项不起作用,并且不显示选择保存还是打开文件的对话框

您能建议我如何打开对话框,让用户选择是否要保存或打开文件吗

我实际使用的是Angular 6。

方法仅适用于IE浏览器。适用于其他浏览器(如Mozilla和Chrome)的方法在IE浏览器中不起作用

您需要使用代码检测IE浏览器,然后尝试使用msSaveOrOpenBlob方法。如果浏览器不是IE,则可以使用适用于其他浏览器的方法

您可以查看下面的示例以下载Blob文件。您可以使用此示例进行测试,以查看它是否按照您的要求工作

App.component.ts

import { Component, OnInit } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
  name = 'Angular 5';
  fileUrl;
  constructor(private sanitizer: DomSanitizer) {  }
  ngOnInit() {
    const data = 'some text';
    const blob = new Blob([data], { type: 'application/octet-stream' });

    this.fileUrl = this.sanitizer.bypassSecurityTrustResourceUrl(window.URL.createObjectURL(blob));
  }

}

如另一篇文章所述,您需要测试浏览器类型并使用正确的API:

var下载\u csv\u使用\u blob=function(文件名、内容){
var csvData=newblob([content],{type:'text/csv'});
if(window.navigator&&window.navigator.msSaveOrOpenBlob){//for IE
window.navigator.msSaveOrOpenBlob(csvData,文件名);
}else{//对于非IE(chrome、firefox等)
var a=document.createElement(“a”);
文件.正文.附件(a);
a、 style=“显示:无”;
var csvUrl=URL.createObjectURL(csvData);
a、 href=csvUrl;
a、 下载=文件名;
a、 单击();
URL.revokeObjectURL(a.href)
a、 删除();
}
};

或者也可以看看。

没有人,我需要这样的东西:我试图找到,但没有得到一个示例,以获得保存和打开文件的弹出窗口。我建议你可以提供下载文件的链接。我只是创建了一个弹出窗口,让用户选择是否下载或打开文件,但我不知道为什么chrome没有这些东西。感谢分享解决方案。我建议你发布你的解决方案作为这个帖子的答案,并尝试在48小时后标记你自己的答案作为这个问题的答案。它可以在未来帮助其他社区成员解决类似的问题。谢谢你的理解