【发布时间】:2020-12-03 06:27:43
【问题描述】:
我在 .ts 文件中动态添加了 span 元素,我在其中添加了 contenteditable 属性,但是当它在网页上呈现时,该属性没有出现在标签中。我已添加为
newHTML += ${taggedUserName}  ` .我想使用这个属性。 原因:我想在文本中突出显示用户,为此我添加了 span 及其 css。
【问题讨论】:
标签: javascript angular
我在 .ts 文件中动态添加了 span 元素,我在其中添加了 contenteditable 属性,但是当它在网页上呈现时,该属性没有出现在标签中。我已添加为
newHTML += ${taggedUserName}  ` .我想使用这个属性。 原因:我想在文本中突出显示用户,为此我添加了 span 及其 css。
【问题讨论】:
标签: javascript angular
您如何将 newHTML 添加到您的组件 html 文件中? 您是否像这样使用 innerHTML 属性:
[innerHTML]=newHTML
更新:
Angular 有一个安全机制来防止 XSS,例如, 因此,有时当您尝试在运行时将某些内容作为字符串添加到 html 中时,它会从 html 中删除一些属性/样式。
一个简单的例子是这样的:
constructor(private _sanitizer: DomSanitizer) { }
ngOnInit() {
this.newHTML += this.sanitize(` <span class='taggedUser' [contenteditable]='false'>${taggedUserName}  `)
}
sanitize(htmlStr: string): SafeHtml {
return this._sanitizer.bypassSecurityTrustHtml(htmlStr);
}
【讨论】: