javascript - selectionStart、selectionEnd 和 focus() 等同于可内容编辑的 span 和 div

标签 javascript html selection contenteditable selection-api

我正在尝试设置一个 contenteditable 跨度,以便在 onkeyup 事件中用格式化文本重新填充跨度。

但是,当我尝试这个时,光标消失了,我不能再打字了。这是因为格式化程序不会修改跨度中已有的文本,而是将其全部删除,然后在其位置写入格式化文本。

重要的是(我认为是)注意元素似乎没有失去焦点。另外,因为我希望这个项目在发布之前保持相当“ secret ”,所以我宁愿现在不泄露源代码。

最佳答案

这可能是因为您使用了 innerHTML 来设置格式化文本。

而是使用 childNodes 集合来访问内容并将 textNodes 替换为格式化的 html 元素。这避免了设置 innerHTML 并避免失去焦点。

关于javascript - selectionStart、selectionEnd 和 focus() 等同于可内容编辑的 span 和 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8016027/

相关文章:

javascript - Angular 注销不会清除本地存储

javascript - Bootstrap 日期时间选择器中的分钟不工作

uitableview - Tableview 选择将我的按钮隐藏在 tableview 单元格中

javascript - 在 JavaScript 中创建函数/对象

javascript - 谷歌地图标记标签文本颜色更改

javascript - 如何在运行时评估 Javascript ES6 代码?

javascript - jQuery:横向滚动的正文背景?

javascript - 同位素插件中砌体列移动布局的问题

javascript - 根据突出显示的文本获取 <a href> 内容

javascript - 如何使用 Javascript 设置 CSS3::selection