简体   繁体   English

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

[英]How to ignore HTML tags in innerHTML attribute?

I'm making a messenger and my messages don't ignore HTML tags because I simply past a text from input in innerHTML of message.我正在制作一个信使,我的消息不会忽略 HTML 标签,因为我只是在消息的 innerHTML 中传递了来自输入的文本。 My code:我的代码:

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

And here I display it:我在这里展示它:

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

What can I do for ignoring HTML tags in message["text"]?忽略 message["text"] 中的 HTML 标签该怎么办?

UpdateNode#innerText property(or Node#textContent property).更新Node#innerText属性(或Node#textContent属性)。

chatMessageText.innerText = message["text"];


Check the difference of both here : innerText vs textContent 检查两者的区别: innerText vs textContent

Refer : Difference between text content vs inner text参考: 文本内容与内部文本的区别

You can't.你不能。 The point of innerHTML is that you give it HTML and it interprets it as HTML. innerHTML是你给它 HTML,它把它解释为 HTML。

You could escape all the special characters, but the easier solution is to not use innerHTML .您可以转义所有特殊字符,但更简单的解决方案是不使用innerHTML

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM