【问题标题】:how with angular2 rc.6 disable sanitize on embed html tag which display pdf如何使用angular2 rc.6禁用显示pdf的嵌入html标签的清理
【发布时间】:2017-01-16 12:48:26
【问题描述】:

我真的不明白我在这里做错了什么:

模板:

<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')
}

这实际上不会加载&lt;embed&gt;,但不会引发错误。

我在pdfURLbypassSecurityTrustResourceUrl() 上使用SafeUrl 进行了尝试。 &lt;embed&gt; 标签接收到正确的 url 但没有显示任何内容。

【问题讨论】:

    标签: angular


    【解决方案1】:

    我想应该是:

    this.pdfUrl = this.domSanitizer.bypassSecurityTrustResourceUrl('url')
    

    并像这样使用它:

    <iframe [src]="pdfUrl" width="500" height="600" type='application/pdf'></iframe>
    

    Plunkr

    更新(Chrome中有embed标签的错误)

    对于embed标签,您可以通过outerHTML重新注入embed标签:

    this.renderer.setElementProperty(el, 'outerHTML', el.outerHTML)
    

    请参阅 plunker 了解此案例

    【讨论】:

    • 多亏了这个解决方法但仍然不起作用,也许这个指令没有按我的需要工作......因为我需要动态更改 url 所以检查这个 plunker plnkr.co/edit/k3iJ84ZjRCj1mJVRAy29?p=preview 你可以检查这个不起作用当我3秒后更改pdf,我想在同一个地方修改很多次src(仍然空白) PS:我不明白在第二个plunker中你不使用DomSanitizer这是如何工作的?这次我不需要安全网址……嗯
    • 试试这个plnkr.co/edit/CmolRdrrzY9LbOij39l7?p=preview我不使用DomSanitanizer,因为我直接使用dom
    • 谢谢,我想知道什么是你最好的或只是这个:我认为我的解决方案更快,不是吗?我只是用 ngIf plnkr.co/edit/0XhNUtP4ABnHwvoSE9Ia?p=preview 实现了这一点,但我需要 setTimeout,有没有解决方案来删除这个 setTimeout,当我删除它时它不会工作 ngIf 不要直接隐藏/显示,也许它非常快
    • 谢谢!!!这车!!它真的很好而且速度很快,因为我不需要 ngIf 和 setTimeout() 非常感谢!
    • 非常感谢。这是我问题的最佳答案:stackoverflow.com/questions/49355544/…
    【解决方案2】:

    首先谢谢你,但我不明白我有完全一样的,看看结果

    我的嵌入没有显示...我没有 css 来隐藏它:

    我认为是因为我没有重新注入嵌入标签?当我打开 sidenav 时,我的嵌入已经存在,我只是更改了 src url,它没有重新定义内容,有解决方案吗?

    【讨论】:

    • 用 Firefox 可以工作,我怎样才能用 chrome 实现,有人帮我吗?即使使用 ngIf 它也不起作用
    【解决方案3】:

    但是在这里您可以使用 FIREFOX 看到它工作正常:

    【讨论】:

    • 这不是答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    • 2015-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-12
    相关资源
    最近更新 更多