insertAtCursor IE问题
in Web前端 on javascript web 前端 - Hits()
IE bug,丢失焦点后,记不住上次的位置。
所以如下的解决方案对于IE还是有bug(总是在开始添加了,因为往往是用户点击个按钮调用此函数,但是此时text已经丢失焦点了。)
function insertAtCursor(myField, myValue){ //IE support if(document.selection){ myField.focus(); sel = document.selection.createRange(); sel.text= myValue; } //MOZILLA/NETSCAPE support elseif(myField.selectionStart || myField.selectionStart=='0'){ var startPos = myField.selectionStart; var endPos = myField.selectionEnd; myField.value= myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length); }else{ myField.value+= myValue; } }
下面的链接就是说的这个问题:
http://forums.ext.net/showthread.php?8348-SOLVED-HtmlEditor-insertAtCursor-bug-on-IE-in-8.2-and-1.0
解决方案是记住上次的位置。
在text每次的mousup,keyup事件中记住选择位置。
function h_up(e) { if (isIE) { //IE's bug, restore position cursel = document.selection.createRange(); } }