很多富文本編輯器都是根據(jù)zss 為基礎(chǔ)進(jìn)行編寫的,根據(jù)需求要修改的很多。下面我就記錄我修改的地方:
(一)中文的編寫時(shí)會(huì)出現(xiàn)點(diǎn)擊不起作用,分析可能是一段話中間出現(xiàn)那種承接上面的status ,導(dǎo)致點(diǎn)擊不能修改狀態(tài)。
思路: 方式比較笨主要是使用“空白格”進(jìn)行分割使其進(jìn)行字體處理。
主要JS代碼:
?document.execCommand('insertHTML', false, '‌');
分割JS后還需要進(jìn)行拼接字體設(shè)置比如:下劃線、粗體、字體顏色等設(shè)置,雖然比較笨拙,但是不會(huì)出現(xiàn)大的錯(cuò)誤,有什么好的方式可以留言交流。
(二)JS中zss_editor.enabledEditingItems 方法是返回當(dāng)前編輯文字所處轉(zhuǎn)態(tài)。
如果要獲取當(dāng)前的文字狀態(tài)可以進(jìn)行修改其中textcolor 輸出:我這里輸出的十六進(jìn)制顏色 處理如下:
var textColor = t.css('color'); ? ? ? ? if (textColor.length != 0 && textColor != 'transparent') { ? ? ? ? ? ? var rgb = textColor.split(','); ? ? ? ? ? ? var r = parseInt(rgb[0].split('(')[1]); ? ? ? ? ? ? var g = parseInt(rgb[1]); ? ? ? ? ? ? var b = parseInt(rgb[2].split(')')[0]); ?? ? ? ? ? ? ? ? ? ? ? ? var hex = "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1); ?? ? ? ? ? ? ? ? ? ? ? ? items.push('textColor:' + hex); ? ? ? ? }
列舉出的問題不是很多,但是開發(fā)的過程中會(huì)出現(xiàn)各種各樣問題,問題的形式也是多種多樣。如果沒有很深的H5 經(jīng)驗(yàn)請(qǐng)不要嘗試zss ,我H5上是一個(gè)半吊子,只能看等一些標(biāo)簽和簡(jiǎn)單的邏輯。
歡迎指正。