首页 > 解决方案 > 如何防止在 contenteditable 元素中创建不间断空格?

问题描述

我有一个 contenteditable div,它在删除或添加单词时会创建许多不间断的空格。这是我的代码的格式:

<div id="div" contenteditable="true">
    <span>Hello</span>
    <span></span>
</div>

我尝试在输入中替换不间断空格:

document.getElementById("div").oninput = function() {
     document.getElementById("div").innerHTML.replace("&nbsp;","");
}

但这不起作用。有任何想法吗?

标签: javascripthtml

解决方案


您需要将 分配innerHTML给更改后的文本,如下所示:

document.getElementById("div").oninput = function() {
  document.getElementById("div").innerHTML = document.getElementById("div").innerHTML.replace("&nbsp;","");
}

因为如本MDN 页面所示:

原始字符串保持不变

所以你需要将结果分配replace给某事。


推荐阅读