[英]How to prevent non-breaking spaces from being created in a contenteditable element?
我有一个 contenteditable div,它会在删除或添加单词时创建许多不间断的空格。 这是我的代码格式:
<div id="div" contenteditable="true">
<span>Hello</span>
<span></span>
</div>
我试过替换输入中的不间断空格:
document.getElementById("div").oninput = function() {
document.getElementById("div").innerHTML.replace(" ","");
}
但这不起作用。 有任何想法吗?
您需要将innerHTML
分配给更改后的文本,如下所示:
document.getElementById("div").oninput = function() {
document.getElementById("div").innerHTML = document.getElementById("div").innerHTML.replace(" ","");
}
因为如此MDN页面所示:
原始字符串保持不变
因此,您需要将replace
结果分配给某些内容。
另一种完全没有任何 JavaScript 的解决方案:只需添加white-space: pre-wrap;
或white-space: break-spaces;
到您的内容可编辑元素的 styles...瞧,没有更多
:)
您已使用getElementById()
,而在HTM
L代码中未使用任何id
时,除了上述答案提到的innerHTML
问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.