javascript - 为什么我会收到if脚本?

时间:2018-03-16 09:41:26

标签: javascript cursor whitespace space execcommand

我很难在</span>的{​​{1}}末尾插入一个空格。

document.execCommand()

背后的原因是我希望在插入后光标位于document.execCommand("insertHTML", false, "<span class='own-class2'>"+"Test"+"</span>"); 之外。

这是一个简单的jsFiddle,向您展示我的意思: jsFiddle 在该示例中,如果单击图像然后写入内容,则文本将为绿色。这意味着文本仍在范围内。

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

我已经尝试过:

  • 像这样的空格</span> - &gt;我在Chrome中没有空间。
  • 像这样的空格'</span> ' - &gt;我在Chrome中获得了'</span>&#32;'

所以我的问题是如何添加单个空格以获得相当于此</span>&nbsp;'</span>&#32;' 而非 '</span> '的结果?

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

如果我这样做:

'</span>&nbsp;'

1 个答案:

答案 0 :(得分:-1)

也许你可以使用零宽度无间隔空格字符(不可见字符):\uFEFF

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

之后创建(可能?)不需要的可见空间

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>