我有一个函数可以修改正在写入文本的控件的innerHTML。
功能的再现:
function handleInput(element, fontName, fontSize) {
//Code segment 1...
console.log(elementNode.innerHTML + (elementNode.parentNode ? ", en.pn.ih: " + elementNode.parentNode.innerHTML : ""));
//Code segment 2....
var arrayFont = elementNode.getElementsByTagName("font");
for (var j = 0; j < arrayFont.length; j++) //Multiple or single <FONT> tag withint a <P> tag
{
//Code segment 3...
console.log("*** 3: Before: fn.ih: " + fontNode.innerHTML + (fontNode.parentNode ? ", fn.pn.ih: " + fontNode.parentNode.innerHTML : ""));
//Code segment 4...
console.log("*** 3: After: fn.ih: " + fontNode.innerHTML + (fontNode.parentNode ? ", fn.pn.ih: " + fontNode.parentNode.innerHTML : ""));
}
}
在代码段3和4中,我修改了elementNode
和fontNode
的innerHTML。仅当执行console.log
时,这些更改才会生效。如果我注释掉console.log
操作,则第3和第4段中所做的更改会导致不需要的非中断空格和换行符(我通过代码插入换行符)。
为什么会这样?