Как с angular2 rc.6 отключить дезинфекцию на встроенном теге html, отображающем pdf
Я действительно не понимаю, что я делаю неправильно здесь:
Шаблон:
<embed [src]="pdfUrl" width="500" height="100%" type='application/pdf'>
Класс:
pdfURL;
constructor(private domSanitizer : DomSanitizer) {}
ngOnInit() {
this.pdfUrl = this.domSanitizer.bypassSecurityTrustUrl('http://example.com/pdf.pdf')
}
Это фактически не загружает <embed>
, но не выдает ошибку.
Я попробовал это, используя тип SafeUrl
на pdfURL
и bypassSecurityTrustResourceUrl()
.
Тег <embed>
получает правильный URL-адрес, но ничего не отображается.
Ответы
Ответ 1
Я думаю, это должно быть:
this.pdfUrl = this.domSanitizer.bypassSecurityTrustResourceUrl('url')
и используйте его как:
<iframe [src]="pdfUrl" width="500" height="600" type='application/pdf'></iframe>
См. Plunkr
Обновить (в Chrome есть ошибка с тегом embed
)
Для тега embed
вы можете повторно внедрить тег через outerHTML
:
this.renderer.setElementProperty(el, 'outerHTML', el.outerHTML)
В этом случае plunker
Ответ 2
сначала спасибо, но я не понимаю, что у меня точно такое же и вижу результат
мое вложение не отображается... У меня нет css, чтобы скрыть его:
Я думаю, что это потому, что я не повторяю embed tag? Когда я открываю sidenav, моя вставка уже существует, я просто меняю URL-адрес src, и он не содержит контент, есть ли решение?
![введите описание изображения здесь]()
Ответ 3
Но здесь вы можете видеть, что FIREFOX работает нормально:
![FIREFOX!!!]()