以下是完整的页面:修改的innerHTML在CONTENTEDITABLE =“真” DIV导致焦点或选择错误的损失
<html>
<head>
<title>Test</title>
<style type="text/css">
.edit { border: 1px solid blue; font-size: 20pt }
</style>
<script type="text/javascript">
function clean(id) {
setTimeout('clean2("'+id+'")', 1)
}
function clean2(id) {
el=document.getElementById(id)
off=window.getSelection().anchorOffset
el.innerHTML = el.innerHTML.replace(/(<([^>]+)>)/ig,"");
el.innerHTML = el.innerHTML.replace(/([0-9])/ig,"<font color='red'>$1</font>");
return false;
}
</script>
</head>
<body onload="document.getElementsByClassName('edit')[0].focus()">
<h1>Type in here</h1>
<div id="e1" class="edit" contentEditable="true" onkeyup="clean('e1')"></div>
</body>
</html>
这里的目标是要强调所有号码为红色。 (将来我会用一些更复杂的着色规则)。目前这种颜色替换正在发生,但只要您将某个数字添加到框中,焦点就会丢失。
任何提示? (使用Chorme dev)
谢谢你,我正在使用这两个来保留和重置选择。 – 2011-03-05 17:26:20