我有一个javascript和我的jsp的组合,它正在添加一些文本并转义它。我也有一些javascrpt,允许我在提交后编辑文本。但是,当单击编辑按钮时,html会呈现。
function editCommentToggle( id )
{
theRow = document.getElementById("id"+id);
//user = theRow.cells[0].innerHTML;
//date = theRow.cells[1].innerHTML;
--> com = theRow.cells[2].innerHTML;
idx = 2;
maxlength = 250;
// Comment field
cell = theRow.cells[idx];
while( cell.childNodes.length > 0 ) cell.removeChild(cell.childNodes[0]);
element = document.createElement("textarea");
element.id="comments-"+id;
element.rows="3";
element.value = com;
element.style.width = "400px";
element.maxLength = "250";
element.onfocus = element.onkeydown = element.onkeyup = function(){return characterCounterEdit(undefined, maxlength, this);};
cell.appendChild(element);
“theRow.cells [2] .innerHTML;”正在抓取该单元格中的文字或html,但如果说有“换行符”则会显示<br>
.. ...我应该如何构建这个来保存转义的html ??
感谢名单
答案 0 :(得分:2)
使用textContent(或IE中的innerText)
com = theRow.cells[2].textContent || theRow.cells[2].innerText
答案 1 :(得分:0)
我有一个旧的Web应用程序,没有jQuery或其他可用的花哨库。我尝试了if-then-else textContent / innerText修复但是某些原因不能用于动态创建的DIV元素。所以不得不实施这个替代修复。测试了Firefox,IE8,IE9和Opera。
// XMLEscape reserverd characters
function XMLEscape(sValue, bUseApos) {
var sval="";
for(var idx=0; idx < sValue.length; idx++) {
var c = sValue.charAt(idx);
if (c == '<') sval += "<";
else if (c == '>') sval += ">";
else if (c == '&') sval += "&";
else if (c == '"') sval += """;
else if (c == '\'') sval += (bUseApos ? "'" : "'");
else sval += c;
}
return sval;
}
var sprite = document.createElement("DIV");
sprite.setAttribute("class", "sprite_red");
sprite.setAttribute("style", "top:" + nextOffsetTop +"px");
sprite.innerHTML = XMLEscape(items[idx]);
scene.append(sprite);