javascript - 当使用innerHTML在div上插入文本时,如何阻止div识别HTML标签?

标签 javascript html browser

div.innerHTML = my_text;

上面的代码有一个问题:HTML 标签被渲染。我想要相反的行为:我想要 <b>渲染为字符串,而不使任何内容变为粗体。我还希望能够使用“\t”和“\n”作为换行符和制表符。我能做什么?

最佳答案

要防止 HTML 被渲染,只需将其转义即可:

div.innerHTML = my_text.replace(/</g,"&lt;");

这仍然允许解析 HTML 实体,例如 é。如果您还希望这些显示为原始状态,请将其标记到行尾:

.replace(/&/g,"&amp;");

或者,尝试这个“更干净”的选项:

while(div.firstChild) div.removeChild(div.firstChild);
div.appendChild(document.createTextNode(my_text));

关于javascript - 当使用innerHTML在div上插入文本时,如何阻止div识别HTML标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21069479/

相关文章:

html - 内联 svg 边框错误

javascript - 为什么在滚动条出现或消失时不会触发调整大小事件?

javascript - 以 ng-repeat 显示数量

javascript - Fabric js如何模拟鼠标按下事件

javascript - 'onblur' 事件,遍历表单的所有字段,不给用户输入数据的机会

php - 将多个 php 行放入数据库中,不断重复最后一行,而不是唯一的

javascript - 识别键盘快捷键(Ctrl + W)在 chrome 中按下

javascript - 现代浏览器中当前的 cookie 限制是什么?

javascript - 我的登录页面 javascript 按钮不工作

javascript - 从 javascript 变量创建表