在IE中设置光标位置,光标丢失

时间:2012-09-03 09:57:47

标签: internet-explorer cursor range

在contenteditable div中,我输入一些像@ab这样的单词,并获得一个用户弹出窗口,然后如果我通过鼠标在弹出窗口中选择用户'abc',用户可以将@abc插入div但光标将丢失。如果我通过keycoard选择用户,那没关系。

IE:   // currentRange包含@ab   // elem是contenteditable div

    elem = $this.get(0);
    elem.focus();

    var inputStr = <a href="userlink">@abc</a>

    currentRange.pasteHTML(inputStr);   

    // set cursor position  
    var r = document.selection.createRange(); 
    if(bookmark) {
        r.moveToBookmark(bookmark);
        r.select();
        bookmark = null;
    }

1 个答案:

答案 0 :(得分:1)

选择后,在范围内调用pasteHTML(),光标将自动移动到粘贴内容后的位置:

elem = $this.get(0);
elem.focus();

var inputStr = '<a href="userlink">@abc</a>';

// set cursor position  
var r = document.selection.createRange(); 
if(bookmark) {
    r.moveToBookmark(bookmark);
    r.select();
    bookmark = null;
}
r.pasteHTML(inputStr);   
相关问题