2011-03-29 40 views
0

我的目標:JS/jQuery的:修改DIV CONTENTEDITABLE的內容和調整

爲了能夠添加/修改的「KEYUP」我的內容可編輯的用戶輸入的div裏面的內容,並能重新聚焦它,該用戶不被中斷。

我的問題:

內容編輯DIV無法正常重新調整。

我的實施例:

http://jsbin.com/owoto4/4/

+0

我不明白你要做什麼 - 這個工作正如我所期望的那樣:在關鍵時刻,你用'content modified'來替換div的HTML,所以每次擊鍵都會導致用戶輸入字符的結果被「內容修改」覆蓋。 – 2011-03-29 16:32:00

+0

我正在使用chrome,並且在HTML修正案後閃爍的插入符號消失 – wilsonpage 2011-03-30 08:08:13

回答

0

我已經提出了一個解決方案,比.focus()方法更有效的:

$.fn.placeCaretAtEnd = function(){ 
    var el = $(this)[0]; 
    el.focus(); 
    if (typeof window.getSelection != "undefined" 
     && typeof document.createRange != "undefined") { 
     var range = document.createRange(); 
     range.selectNodeContents(el); 
     range.collapse(false); 
     var sel = window.getSelection(); 
     sel.removeAllRanges(); 
     sel.addRange(range); 
    } else if (typeof document.body.createTextRange != "undefined") { 
     var textRange = document.body.createTextRange(); 
     textRange.moveToElementText(el); 
     textRange.collapse(false); 
     textRange.select(); 
    } 
    } 

USAGE:

$('#myContenteditable').placeCaretAtEnd();