VIV*_*NWO 3 html javascript replace html-entities
我试图字符转换像<和>成<和>等.
用户输入取自文本框,然后复制到名为DIV的DIV中changer.
这是我的代码:
function updateChanger() {
var message = document.getElementById('like').value;
message = convertHTML(message);
document.getElementById('changer').innerHTML = message;
}
function convertHTML(input)
{
input = input.replace('<', '<');
input = input.replace('>', '>');
return input;
}
Run Code Online (Sandbox Code Playgroud)
但它似乎没有更换>而已,<.也试过这样:
input = input.replace('<', '<').replace('>', '>');
Run Code Online (Sandbox Code Playgroud)
但我得到了相同的结果.
谁能指出我在这里做错了什么?干杯.
一种更健壮的方法是创建一个HTML文本节点 ; 这样,所有其他可能无效的内容(不仅仅是<和>)都会被转换.例如:
var message = document.getElementById('like').value;
document.getElementById('changer').appendChild(document.createTextNode(message));
Run Code Online (Sandbox Code Playgroud)
UPDATE
你提到你的事件是在每次按键时触发的.如果这是触发此代码的原因,那么在添加文本之前,您需要删除之前在div中的内容.一个简单的方法是这样的:
var message = document.getElementById('like').value;
var changer = document.getElementById('changer');
changer.innerHTML = '';
changer.appendChild(document.createTextNode(message));
Run Code Online (Sandbox Code Playgroud)