我<p contenteditable="true"></p>
在一个页面上有多个元素。我正在寻找一种解决方案来使用箭头键在那些不相交的元素之间导航,就好像它们是一个可编辑的元素一样。
例如,如果插入符号位于第 1 段最后一行的第 10 个字符并且用户按下向下箭头键,则插入符号应该跳转到第 2 段并将插入符号放在第 10 个字符(如果有的话)在它的第一行。
感谢任何评论。
我<p contenteditable="true"></p>
在一个页面上有多个元素。我正在寻找一种解决方案来使用箭头键在那些不相交的元素之间导航,就好像它们是一个可编辑的元素一样。
例如,如果插入符号位于第 1 段最后一行的第 10 个字符并且用户按下向下箭头键,则插入符号应该跳转到第 2 段并将插入符号放在第 10 个字符(如果有的话)在它的第一行。
感谢任何评论。
修改后的答案
您可以使用以下内容检测插入符号位于当前可编辑元素的开头或结尾(例如最后一行的 down 数组):
keydown
事件Range
(或TextRange
在 IE 中)并将其与包含整个段落的另一个 Range 进行比较。这是稍微棘手但更无缝的选项。或者:这不是插入符号的通常行为,但相当容易实现,并且可能是一个合理的折衷方案。问题是没有可靠的跨浏览器方法来计算插入符号的坐标。
如果您让容器元素而不是每个段落都可编辑怎么办?例如:
<div contenteditable="true">
<p>Lorem ipsum</p>
<p>dolor sit</p>
</div>