如何在 angularjs 中绑定为字符串的 html 部分

How to bind as html parts of a string in angularjs?

本文关键字:字符串 html 部分 绑定 angularjs      更新时间:2023-09-26

我正在尝试用angularjs制作一个简单的所见即所得编辑器。我正在对经过消毒的可编辑div 内容中的每个键控发出 ajax 请求。因此,HTML 标记被转换为其他代码。现在如何故意为其添加样式?

如果你使用contenteditable,你实际上是在编辑DOM/HTML节点,而不仅仅是一个文本表示。要获取元素的HTML代码,您可以检索element.innerHTML。

在这里尝试一下 Chrome:打开开发者控制台 (F12),选择一个节点,添加 contenteditable 属性。在控制台中键入 $0,您将看到 [突出显示] 元素。输入$0.innerHTML,您将看到代码。

也可能很有趣,尽管它并不真正客观:https://medium.com/medium-eng/why-contenteditable-is-terrible-122d8a40e480

不确定你是如何做的卫生,但你应该只去掉脚本标签,别管其他一切。这不会保护您免受所有可能的 XSS 攻击,因为这是一个非常困难的话题,最好通过白名单来处理。