Javascript 将插入符号设置为contenteditable div中的初始子项以实现跨浏览器兼容性

Javascript 将插入符号设置为contenteditable div中的初始子项以实现跨浏览器兼容性,javascript,contenteditable,Javascript,Contenteditable,我想将插入符号设置为我的contenteditablediv中的子段落 为了实现跨浏览器兼容性,我将第一个字符输入到contenteditablediv。如果是第一个字符,我将插入到div+first\u char+ 接下来,我尝试在段落的第一个字符之后设置插入符号 它似乎起作用了。但是,在sel.addRange处也会发生错误(请参阅代码) 出了什么问题,我该如何解决 $(“#内容包装器”).on(“键下键”,“.contenteditable div”,函数(事件){ keyCodeNow

我想将插入符号设置为我的contenteditablediv中的子段落

为了实现跨浏览器兼容性,我将第一个字符输入到contenteditablediv。如果是第一个字符,我将插入到div
+first\u char+

接下来,我尝试在段落的第一个字符之后设置插入符号

它似乎起作用了。但是,在
sel.addRange
处也会发生错误(请参阅代码)

出了什么问题,我该如何解决

$(“#内容包装器”).on(“键下键”,“.contenteditable div”,函数(事件){
keyCodeNow=event.keyCode;
如果($(this.html()=''){
if((keyCodeNow>47&&keyCodeNow<58)|///数字键
(keyCodeNow>64&&keyCodeNow<91)| |//字母键
(keyCodeNow>95&&keyCodeNow<112)//numpad键
){
$(this.html(“”+String.fromCharCode(keyCodeNow)+“

”); var sel=window.getSelection(); var范围=选择范围(0); var childNode=document.getSelection().anchorNode.firstChild.firstChild; console.log('当前位置:'+range.startOffset+'内部'+range.startContainer);//当前位置:0内部[object HtmlLevel] range.setStart(childNode,1); range.setEnd(childNode,1); 范围。塌陷(真); console.log('Next position:'+range.startOffset+'in'+range.startContainer);//Next position:1 in[object Text] 选择removeAllRanges(); sel.addRange(range);//错误:不支持不连续选择 返回false; } } …