1

contenteditable div で @ab のような単語を入力してユーザー ポップアップを取得し、ポップアップでユーザー 'abc' をマウスで選択すると、ユーザーは @abc を div に挿入できますが、カーソルは失われます。キーコードでユーザーを選択すればOKです。

IE: //currentRange include @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;
    }
4

1 に答える 1

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);   
于 2012-09-08T09:40:26.787 に答える