javascript - 如果我编写脚本,为什么会得到一个?

javascript - Why do I get a   if I script  ?

我很难在 document.execCommand() 中的 </span> 末尾插入一个 space。

document.execCommand("insertHTML", false, "<span class='own-class2'>"+"Test"+"</span>");

这背后的原因是我希望插入后光标在<span>之外。

这是一个简单的 jsFiddle 来向您展示我的意思: jsFiddle 在那个例子中,如果你点击图片然后写一些东西,文本将是绿色的。这意味着文本仍在范围内。

所以我想要的是在</span>之后插入一个普通的space。

我已经尝试过的:

所以我的问题是如何添加单个 space 以获得与此 '</span>&#32;''</span> ' 而不是 [=46= 等效的结果] '</span>&nbsp;' ?

我在检查器上得到了什么:https://ibb.co/cqCW2x

如果我这样做:

document.execCommand("insertHTML", false, "<span class='own-class2'>"+"Test"+"</span>&#32;");

也许你可以使用零宽度不间断 space 字符(不可见字符):\uFEFF.

此解决方案的优点是它不会在 span

之后创建(也许?)不需要的可见内容 space

function Test() {
document.execCommand("insertHTML", false, "<span class='own-class2'>"+"Test"+"</span>\uFEFF");
}
#textBox {
 width: 540px;
 height: 200px;
 border: 1px #000000 solid;
 padding: 0;
 overflow: scroll;
}
.own-class2 {color:green;}
<div id="toolBar">  
 <button height="20px" onclick="Test()" >insert a span</button>
</div>
<div id="textBox" class="textbox" contenteditable="true"></div>