Альтернатива mssaveoropenblob на chrome - PullRequest
0 голосов
/ 14 апреля 2020

Мне нужно найти альтернативу "mssaveoropenblob", которая работает на IE, для Mozilla и chrome. В частности, на chrome это не работает и не показывает диалоговое окно для выбора, сохранить или открыть файл.

Можете ли вы предложить мне, как я могу открыть диалоговое окно, чтобы позволить пользователю выбрать, хочет ли он сохранить или открыть файл?

Я на самом деле использую Angular 6.

1 Ответ

0 голосов
/ 14 апреля 2020

msSaveOrOpenBlob метод будет работать только для браузера 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));
  }

}

Пример Stackblitz в реальном времени

...