12

<div [innerHTML]="html"></div>当 html 包含 iframe 时不起作用。我试图用 做一些安全绕过this.sanitizer.bypassSecurityTrustResourceUrl(...,但它仍然不起作用。

这是angular2 未正确注入的演示。

4

3 回答 3

27

工作柱塞

您需要为此使用bypassSecurityTrustHtml,并且需要html像这样分配和使用经过消毒的

this.html = this.sanitizer.bypassSecurityTrustHtml(this.html);
于 2016-07-19T04:13:35.700 回答
5

DomSanitizationService 从 angular2 RC6 过时了

如果您使用的是 angular2 RC5,请使用这个-

DomSanitizationService

如果您要迁移到 angular2 RC6,请使用此-

DomSanitize

这是完整的示例

import {DomSanitizer} from '@angular/platform-browser';

然后添加结构

private sanitizer: DomSanitizer

并像这样在您的变量上应用消毒剂

let text = <iframe width="977" height="733" src="https://www.youtube.com/embed/C0DPdy98e4c" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
text = this.sanitizer.bypassSecurityTrustHtml(text);
return text;
于 2019-07-31T06:22:05.860 回答
2

内部html Angular 8

this.sanitizer.bypassSecurityTrustHtml()将字符串作为输入并将其设为 SafeHtml。我在 Angular 8 中完成了此操作。

于 2020-04-22T08:45:09.283 回答