Получить доступ, запрещенный для PDF, bypassSecurityTrustResourceUrl в браузере Edge - PullRequest
0 голосов
/ 17 сентября 2018

Текущее поведение

Невозможно открыть файл PDF, bypassSecurityTrustResourceUrl предоставить доступ к PDF в браузере Edge, которому отказано

Ожидаемое поведение

При просмотре файла PDF

Минимальное воспроизведение проблемы с инструкциями

Эта строка вызывает проблему

<object  [data]="pdfURL | safeUrl" > </object>

Эта строка работает нормально, она работает, если PDF URL уже записан в html

<object  data="https://pdfobject.com/pdf/sample-3pp.pdf" > </object>

это труба safeUrl

@Pipe({ name: 'safeUrl'})
export class SafeUrlPipe implements PipeTransform  {
  constructor(private sanitized: DomSanitizer) {}
  transform(value) {
    return this.sanitized.bypassSecurityTrustResourceUrl(value);
  }
}

Окружающая среда

Angular CLI: 6.1.1
Node: 8.11.3
OS: win32 x64
Angular: 4.4.7
... animations, common, compiler, compiler-cli, core, forms
... http, platform-browser, platform-browser-dynamic
... platform-server, router, tsc-wrapped


Browser:
- [x ] Edge version Default

For Tooling issues:
- Node version: XX  <!-- run `node --version` -->
- Platform:  Windows 

1 Ответ

0 голосов
/ 17 сентября 2018

Согласно PDF Viewer с использованием тега объекта, не работающего для Edge

Нам нужно установить атрибут данных, используя DOM elementRef.

Шаблон:

<object [data]="pdfurl | safeUrl" #pdfobject></object>

Компонент:

@ViewChild('pdfobject') pdfobject: ElementRef;
this.pdfobject.nativeElement.setAttribute('data', 'https://pdfobject.com/pdf/sample-3pp.pdf');
...