有人可以在Chrome浏览器中解决这个问题吗? removeChild()函数使插入符跳转到div的末尾。任何人都有解决方法?Chrome浏览器使用removeChild跳转脱字号错误
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
var caretX = 0
function keypress(event){
insertAtCaret('<span id="caretpos"></span>');
var caretpos = document.getElementById('caretpos')
//caretX = getX(caretpos) //finds the X position of the element
removeNode(caretpos)
return(true)
}
//Functions used:
function insertAtCaret(text,replaceContents) {
if(!text){return(false);}
if(replaceContents==null){replaceContents=false;}
if(!replaceContents){//collapse selection:
var sel = document.getSelection()
sel.collapseToStart()
}
return(document.execCommand('insertHTML', false, text))
};
function removeNode(el){
el.parentNode.removeChild(el);
}
</script>
</head>
<body contentEditable="true" onkeypress="return(keypress(event))">
<div>Type some content somewhere here > < and watch what happens in chrome</div>
</body>
</html>
更新: 我其实是想通过插入一个虚设的元素,找到其位置,然后卸下来获得用户的符的像素位置。也就是说,问题在Chrome中是一个基本问题,以这种方式操纵DOM会导致脱字符号跳到元素的末尾
你究竟想要做什么? –
对不起蒂姆我试图通过插入一个虚拟元素,找到它的位置,然后将其删除,以获得用户的插入符号的像素位置。也就是说,这个问题是Chrome中的一个基本问题,通过这种方式操纵DOM会使脱字符跳到元素的末尾 – cronoklee