как обойти блокировку всплывающих окон в угловых 6? - PullRequest
0 голосов
/ 18 января 2019

Я хочу показать pdf при нажатии кнопки предварительного просмотра, но pdf блокируется при открытии в новой вкладке. Итак, я хочу обойти свойство блокировщика всплывающих окон браузеров

     getPdf(projectId) {
this.http.get(environment.apiUrl + "/poject/getPdf/" + projectId + '/' + this.userDataSession.userDetailsId + '/' + 8 + '/' + this.authService.getUserToken(), { responseType: 'blob' })
  .subscribe((blob: Blob) => {
    let url = URL.createObjectURL(blob);
    let link = document.createElement("a");
    if (link.download !== undefined) {
      let url = URL.createObjectURL(blob);
      let win = window.open(url, '_blank');
      win.focus();
      link.style.visibility = 'hidden';
      document.body.appendChild(link);
      link.click();
      document.body.removeChild(link);
    }

  });

}

Вот так я получаю доступ к pdf с сервера и хочу показать в новом окне, но браузер блокирует всплывающее окно

1 Ответ

0 голосов
/ 27 февраля 2019

Код ниже поможет вам открыть вложение (файл в новом окне) без блокировки всплывающих окон

getPdf(projectId) {
  let newWindow = window.open();//OPEN WINDOW FIRST ON SUBMIT THEN POPULATE PDF
  this.http.get(environment.apiUrl + "/PROJECT/getPdf/" + projectId + '/' + this.userDataSession.userDetailsId + '/' + 9 + '/' + this.authService.getUserToken(), { responseType: 'blob' })
    .subscribe((blob: Blob) => {
      let file = new Blob([blob], { type: 'application/pdf' });
      let url = URL.createObjectURL(file);
      this.router.navigate([url]);
      newWindow.location.href = url;//POPULATING PDF 
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...