第一看到導師使用div+textarea實現富文本框的時候,有下面兩個疑問:html
1.爲何不能直接使用textarea?jquery
本身試了一下,發現textarea會將html標籤看作字符串,就算是用append()和html()也不能夠。這樣就沒辦法經過span等html標籤給文本內容附上樣式。app
2.那直接用div呢?dom
一個最重要的問題,div不可編輯。哈,固然能夠經過設置 contenteditable=「true」;來解決。但是,你會發現一個問題。由於我作的富文本框要跟後臺數據spa
進行校驗,正確和錯誤都要設置不一樣的顏色。因此須要引入valuechange()方法。可是每次調用valuechange()方法就會發現光標怎麼跑到文本前面去了。夥htm
伴們想要在div+contenteditable=「true」;動態加載圖片的時候也會遇到這個問題。對象
能夠把光標設置在文本最末端?圖片
固然能夠。使用range對象可讓光標一直處在最末端(el是div對象)rem
var el=$('#text')[0];//如何把jquery對象轉爲dom
var range = document.createRange();
range.selectNodeContents(el);
range.collapse(false);
var sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
But!若是想記錄上一次光標插入的位置!看了不少大牛的博客,input等可輸入文本均可以成功設置光標在指定位置。然而,div就是不!行!!!可是,我就是有一種執念,以爲沒有解決不了的問題,只有不過硬的技術!下面是否是應該接着寫解決辦法了。loading。。。各位大牛有想到解決辦法,求評論