javascript - 使用 Javascript 将 HTML 转换为其安全实体

标签 javascript html replace html-entities

我正在尝试转换像 < 这样的字符和 >进入&lt;&gt;等等

用户输入从文本框中获取,然后复制到名为 changer 的 DIV 中.

这是我的代码:

function updateChanger() {
    var message = document.getElementById('like').value;
    message = convertHTML(message);
    document.getElementById('changer').innerHTML = message;
}

function convertHTML(input)
{
    input = input.replace('<', '&lt;');
    input = input.replace('>', '&gt;');
    return input;
}

但它似乎并没有取代> , 只有 < .也试过这样:

input = input.replace('<', '&lt;').replace('>', '&gt;');

但我得到了相同的结果。

谁能指出我在这里做错了什么?干杯。

最佳答案

一个更可靠的方法是 create an HTML text node ;这样所有其他可能无效的内容(不仅仅是 < 和 >)都会被转换。例如:

var message = document.getElementById('like').value;
document.getElementById('changer').appendChild(document.createTextNode(message));

更新

您提到您的事件在每次按键时触发。如果这是触发此代码的原因,您需要在附加文本之前删除 div 中之前的内容。一个简单的方法是这样的:

var message = document.getElementById('like').value;
var changer = document.getElementById('changer');
changer.innerHTML = '';
changer.appendChild(document.createTextNode(message));

关于javascript - 使用 Javascript 将 HTML 转换为其安全实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3066574/

相关文章:

javascript - 在可滚动部分的视口(viewport)中,如何更改元素的样式属性?

javascript - 使用 Blob 作为 Flash 对象

python - 查找并替换数据框内列表中的值

javascript - 如何为字符串和数字列表定义 GraphQLType?

html - 为什么位置: relative; not working on firefox?

javascript - bootstrap-select 没有选择正确的项目

用于替换特定字符串列表的 Python 代码

python - 随机替换字符串的某些部分

javascript - 为什么 javascript 在具有共享/部分 View 的 asp.net mvc View 中不起作用

javascript - 如何在不使用 Active X 的情况下将 DDE 与 Javascript 结合使用?