gpt4 book ai didi

javascript - 在 contenteditable div 中用 html 包裹光标

转载 作者:行者123 更新时间:2023-11-28 00:13:37 27 4
gpt4 key购买 nike

我希望将光标包裹在 span 中内容可编辑的标签 div .

示例(用 | 表示的光标):

  • 之前:

The fox jumps |

  • 之后:

The fox jumps <span>|</span>

任何修改 innerHTML 的尝试都会导致光标移动到行尾。我希望将它插入之间新的 HTML span的。

最佳答案

由于实现问题,这不可能跨浏览器。尝试将插入符放在一个空的内联元素中,例如 <span>在 WebKit 和 IE 中,插入符实际上会紧挨在元素之前。下面演示了这一点:它会做你在 Firefox 中所期望的,而不是 WebKit 或 IE。

http://jsfiddle.net/8TTb3/1/

您可以使用 DOM RangeSelection用于在插入符号位置插入元素的 API,IE < 9 除外,它不支持这些元素,而是拥有自己的 API。

代码:

var range = sel.getRangeAt(0);
var span = document.createElement("span");
range.insertNode(span);
range.setStart(span, 0);
range.setEnd(span, 0);
sel.removeAllRanges();
sel.addRange(range);

关于javascript - 在 contenteditable div 中用 html 包裹光标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13555681/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com