小编use*_*798的帖子

带有超链接的 Angular 5 DomSanitizer

我正在使用 WYSIWYG 编辑器(CKEditor)并尝试使用 Angular 5 呈现内容。

我想弄清楚的是在 Angular 5 中使用 DomSanitizer 的正确方法。我面临的问题是超链接在生成的经过消毒的 HTML 中不起作用(不可“点击”)。

我正在使用以下 Typescript 代码返回一个 safeHtml 内容:

 public getSafeContent(): SafeHtml {
    return this.sanitizer.bypassSecurityTrustHtml(this.page.content);
}
Run Code Online (Sandbox Code Playgroud)

并以这种方式在我的模板中使用它:

<div [innerHTML]="getSafeContent()"></div>
Run Code Online (Sandbox Code Playgroud)

这将呈现具有完整内联样式的 HTML,但超链接将不起作用。

我尝试这样做:

public getSafeContent(): SafeHtml {
    return this.sanitizer.sanitize(SecurityContext.HTML, this.page.content);
}
Run Code Online (Sandbox Code Playgroud)

这导致超链接实际上有效,但内联样式无效。

有没有办法让样式和超链接都与经过消毒的内容一起使用?

更新

这是页面在 Chrome 开发工具中的样子:

<div _ngcontent-c22="" class="row">
   <div _ngcontent-c22="" class="col-lg-12">

        <div _ngcontent-c22="">
            <p><a href="http://www.google.com">google</a></p>
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

并且谷歌链接不可点击。

html hyperlink ckeditor angular

7
推荐指数
1
解决办法
9728
查看次数

标签 统计

angular ×1

ckeditor ×1

html ×1

hyperlink ×1