如何忽略innerHTML属性中的HTML标记?

时间:2017-02-06 09:13:47

标签: javascript html tags escaping

我正在制作一个信使,我的信息不会忽略HTML标签,因为我只是通过消息的innerHTML输入文本。我的代码:

function Message(sender) {
    ...
    this["text"] = "";
    ...
    this.addText = function (text) {
        this["text"] = text;
    };
    ...
};

在这里我展示它:

...
var chatMessageText = document.createElement("p");
chatMessageText.innerHTML = message["text"];
...

如何忽略消息中的HTML标签[" text"]?

2 个答案:

答案 0 :(得分:1)

更新Node#innerText属性(或Node#textContent属性)。

chatMessageText.innerText = message["text"];

<小时/> 检查两者的区别:innerText vs textContent

参考:Difference between text content vs inner text

答案 1 :(得分:0)

你不能。 innerHTML的要点是你给它HTML,它把它解释为HTML。

您可以转义所有特殊字符,但更简单的解决方案是不使用innerHTML

var chatMessagePara = document.createElement("p");
var chatMessageText = document.createTextNode(message["text"]);
chatMessagePara.appendChild(chatMessageText)