使用了contenteditable=true的div,focus之后,会在最前的
也碰到了这样的问题,后来我就想:当文本框没有值的时候,光标会停在最前;当向文本框输入值的时候,光标就会停在当前输入的位置。如果现在能够模拟出这种状态,那么问题就可以迎刃而解了。那么就让文本框先获得焦点,然后再改变文本框中的值就可以实现了。看看下面这段代码,就是这个思想。
HTML code
<html>
<body>
<input id="input" type="text" value="OK, no problem."/>
<input type="button" value="focus" onclick="setFocus('input',true)"/>
<input type="button" value="blur" onclick="setFocus('input',false)"/>
<script type="text/javascript">
function setFocus(id, yes) {
var obj = document.getElementById(id);
if (yes) {
obj.focus();
obj.value = obj.value;
} else {
obj.blur();
}
}
</script>
</body>
</html>