我正在尝试设置一个 contenteditable
跨度,以便在 onkeyup
事件中用格式化文本重新填充跨度。
但是,当我尝试这个时,光标消失了,我不能再打字了。这是因为格式化程序不会修改跨度中已有的文本,而是将其全部删除,然后在其位置写入格式化文本。
重要的是(我认为是)注意元素似乎没有失去焦点。另外,因为我希望这个项目在发布之前保持相当“ secret ”,所以我宁愿现在不泄露源代码。
最佳答案
这可能是因为您使用了 innerHTML 来设置格式化文本。
而是使用 childNodes 集合来访问内容并将 textNodes 替换为格式化的 html 元素。这避免了设置 innerHTML 并避免失去焦点。
关于javascript - selectionStart、selectionEnd 和 focus() 等同于可内容编辑的 span 和 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8016027/