javascript – 在contenteditable元素中,在HTML标记之间移动光标
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 在contenteditable元素中,在HTML标记之间移动光标,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1728字,纯文字阅读大概需要3分钟。
内容图文
![javascript – 在contenteditable元素中,在HTML标记之间移动光标](/upload/InfoBanner/zyjiaocheng/770/f315e96af21b44aea3f239ebd722d6fb.jpg)
Firefox比Chrome更好地处理这个问题,但不是我想要的方式.它们将所有相邻的HTML标记混合在一起并将它们视为一个(我不想要).
Firefox:当光标留在标签(或一组相邻标签)上并向右按时,光标会跳过标签前面的第一个字符.然后,如果你按左键,它会在字符和标签之间移动. (按左,然后相同.)
Chrome:标记及其后面的第一个字符被集中在一起.将光标放在标签和后续字符之间是不可能的.
期望:标签被视为相对于光标的单个字符.如果光标位于标签的左侧并且您向右按,则它应该位于标签的右侧,反之亦然,以便向左按.
如何在浏览器上强制执行所需的行为?
这不适用于WYSIWIG编辑器.为了达到特定目的,标签在生产中以可视方式表示,就像它们在jsfiddle中一样.用户希望任意控制哪个元素包含光标.
b:before, b:after,
i:before, i:after,
p:before, p:after {
color: blue;
}
b:before {
content: '<b>';
}
b:after {
content: '</b>';
}
p:before {
content: '<p>';
}
p:after {
content: '</p>';
}
i:before {
content: '<i>';
}
i:after {
content: '</i>';
}?
----------
<p contenteditable='true'>regular regular<b>bold</b>regular -
try moving the cursor to either side of either blue tag.</p>
<p contenteditable='true'>try it in this: regular<b><i>bolditalic</i></b></p>
解决方法:
修改代码以确保不跳过字符将是一个合理的修复,但是能够在相邻标签之间导航或编辑标签将与浏览器如何处理标记(将不可见标签视为文本内容)相对立.标签的视觉表示应该作为文本内容来完成,以便做到这一点,并且任何更神奇的解决方案很可能必须在某个时刻依靠它(因此完全更清楚).一种相当简单的方法是使用像< span class =“tag”>& lt; b& gt;< / span>这样的方法.然后添加附加到* [contenteditable =’true’] span.tag的JavaScript,以控制光标作为单个单位在该跨度上移动.
转换到/来自最好使用服务器端代码完成,但是否则在JavaScript中使用基本内省将允许所需的代码替换或补充(替换将使编辑变得更容易,但简单地添加额外的跨度将更少侵入如果元素结构是固定的,只编辑文本内容.
内容总结
以上是互联网集市为您收集整理的javascript – 在contenteditable元素中,在HTML标记之间移动光标全部内容,希望文章能够帮你解决javascript – 在contenteditable元素中,在HTML标记之间移动光标所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。