第一看到導師使用div+textarea實現富文本框的時候,有下面兩個疑問:
1.為什么不能直接使用textarea?
自己試了一下,發現textarea會將html標簽看做字符串,就算是用append()和html()也不可以。這樣就沒辦法通過span等html標簽給文本內容附上樣式。
2.那直接用div呢?
一個最重要的問題,div不可編輯。哈,當然可以通過設置 contenteditable=“true”;來解決。可是,你會發現一個問題。因為我做的富文本框要跟后台數據
進行校驗,正確和錯誤都要設置不同的顏色。所以需要引入valuechange()方法。但是每次調用valuechange()方法就會發現光標怎么跑到文本前面去了。伙
伴們想要在div+contenteditable=“true”;動態加載圖片的時候也會遇到這個問題。
可以把光標設置在文本最末端?
當然可以。使用range對象可以讓光標一直處在最末端(el是div對象)
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。。。
各位大牛有想到解決辦法,求評論