一个div可编辑框,我需要在输入的字符大于10的时候,让输入框的内容保存为前十个字符。一下代码在谷歌浏览器内没有问题,但是到了IE8中我输入“11111111111”可以正常截取,但是输入“啊啊啊啊啊啊啊啊啊啊啊”显示的结果会变成一个“啊”。
在线等待,解决方法,还有,我并不是很确定问题出现在哪了。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="js/jquery-1.11.3.min.js"></script>
</head>
<body>
<div id="myDiv" contenteditable="true" style="width: 100%; height: 80px; border: 1px solid #CCC;" onblur="myDivCalc()" onkeyup="myDivCalc()"></div>
<script>
function myDivCalc(){
var str = $("#myDiv").text();
if(str.length<=10){
}else{
var strJ = str.substring(0,10);
$("#myDiv").text(strJ);
set_focus(document.getElementById('myDiv'))
}
}
//处理div光标在最后
function set_focus(el){
//el=el[0]; //jquery 对象转dom对象
el.focus();
if($.support.msie)
{
var range = document.selection.createRange();
this.last = range;
range.moveToElementText(el);
range.select();
document.selection.empty(); //取消选中
}
else
{
var range = document.createRange();
range.selectNodeContents(el);
range.collapse(false);
var sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
}
}
</script>
</body>
</html>
本人更换了IE8下系统的输入法,由原有的微软输入法,更换成搜狗输入法。就没问题了。