执行注入Angular 2模板的javascript

时间:2016-10-13 17:20:01

标签: angular xss

我有一个存储一些HTML内容的CMS。在我的Angular Web应用程序中,我将获取这些内容并将其注入我的模板中。

让我们说" myContent"从模型得到的内容是:

<div>Test</div>
<script type="text/javascript">alert("test")</script>

在使用此内容的组件中,我已完成:

export class PlaceholderComponent implements OnInit  {
  @Input() placeholderKey : string;

  private placeHolderContent : SafeHtml;

  constructor(private modelProvider: ModelProviderService, private sanitizer: DomSanitizer){}

  ngOnInit() {
    if(this.model.placeholders) {
      this.placeHolderContent = this.sanitizer.bypassSecurityTrustHtml(this.model.placeholders[this.placeholderKey]);
    }
  }
}

在此组件的模板中

<div [innerHtml]="placeHolderContent"></div>

因此,html被正确地注入模板中,包括脚本标记,但是警报永远不会被执行(请注意,console.log(&#34; test&#34;)也不起作用。)< / p>

您是否有一个解决方案,可以在组件完成加载时运行JavaScript注入HTML?

(注意:如果我在我的Angular组件中使用jquery在模板中插入HTML,它就可以工作!)

0 个答案:

没有答案