insertAtCursor IE问题

 

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(); 
            } 
        }   

Total views.

© 2013 - 2024. All rights reserved.

Powered by Hydejack v6.6.1