摘要:前言用過(guò)編輯器的都知道它對(duì)于中文輸入有以下兼容性問(wèn)題在瀏覽器下,輸入中文是,編輯區(qū)的光標(biāo)始終停在拼音的前面不影響輸入,但體驗(yàn)很糟在等支持方法的瀏覽器下無(wú)法使用輸入法輸入中文使用的也是編輯器,但它對(duì)底層做了很多修改,解決了這些問(wèn)題。
前言
用過(guò) slate 編輯器的都知道它對(duì)于中文輸入有以下兼容性問(wèn)題:
在 chrome 瀏覽器下,輸入中文是,編輯區(qū)的光標(biāo)始終停在拼音的前面(不影響輸入,但體驗(yàn)很糟)
在 safari 等支持 onbeforeinput 方法的瀏覽器下(HAS_INPUT_EVENTS_LEVEL_2)無(wú)法使用輸入法輸入中文
GitBook 使用的也是 slate 編輯器,但它對(duì) slate 底層做了很多修改,解決了這些問(wèn)題。在我對(duì)比 gitbook/slate 與 slate 時(shí),沒(méi)有找到解決方案。
后來(lái),我在 slate 的 issue 里查找該問(wèn)題,找到了一些不錯(cuò)的回答。
環(huán)境:slate 0.47.1 slate-react 0.22.1
光標(biāo)停留在拼音前的問(wèn)題參考 pull request 。找到相關(guān)源代碼,修改即可。
按照上述代碼修改之后,發(fā)現(xiàn)光標(biāo)問(wèn)題解決了,且 safari 瀏覽器下也有了一些小變化:輸入法能正常工作了,但是最后的輸入內(nèi)容不會(huì)輸入到 瀏覽器內(nèi)。
safari 輸入問(wèn)題參考 issue 。最后面用戶 hudk114 的評(píng)論里有提到,需要在 onCompositionEnd 時(shí),根據(jù)是否需要插入數(shù)據(jù)(HAS_INPUT_EVENTS_LEVEL_2 為真時(shí)),調(diào)用 edit.insertText 插入數(shù)據(jù)。
這樣寫就行:
const isSynthetic = !!event.nativeEvent if (isSynthetic && HAS_INPUT_EVENTS_LEVEL_2){ editor.insertText(event.data); }
修改了這兩處之后,輸入中文的問(wèn)題即可解決。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/110205.html
摘要:具體表現(xiàn)是什么樣的呢圖安卓下不期望的輸入行為可以看到,在安卓手機(jī)下每次格式化發(fā)生的時(shí)候,本來(lái)應(yīng)該一直在最后的光標(biāo)會(huì)錯(cuò)格一位,導(dǎo)致連續(xù)輸入出現(xiàn)問(wèn)題。 今天要來(lái)說(shuō)的是有關(guān)于有數(shù)值格式化的場(chǎng)景中,React input 光標(biāo)的一些異常的表現(xiàn)和對(duì)應(yīng)的處理辦法。故事要從一個(gè) issue 說(shuō)起,有用戶反映在使用 NumberField 組件輸入時(shí)安卓下會(huì)出現(xiàn)光標(biāo)位置異常,導(dǎo)致連續(xù)輸入會(huì)達(dá)不到期望的...
摘要:解決頁(yè)面使用在上滑動(dòng)卡頓的問(wèn)題首先你可能會(huì)給頁(yè)面的和增加了然后就可能造成上頁(yè)面滑動(dòng)的卡頓問(wèn)題。頁(yè)面橡皮彈回效果遮擋頁(yè)面選項(xiàng)卡有時(shí)和的去除掉問(wèn)題可能就沒(méi)有了。該行無(wú)文字時(shí),光標(biāo)高度與的一致。 1.解決頁(yè)面使用overflow: scroll在iOS上滑動(dòng)卡頓的問(wèn)題? 首先你可能會(huì)給頁(yè)面的html和body增加了height: 100%, 然后就可能造成IOS上頁(yè)面滑動(dòng)的卡頓問(wèn)題。解決方案...
摘要:解決頁(yè)面使用在上滑動(dòng)卡頓的問(wèn)題首先你可能會(huì)給頁(yè)面的和增加了然后就可能造成上頁(yè)面滑動(dòng)的卡頓問(wèn)題。頁(yè)面橡皮彈回效果遮擋頁(yè)面選項(xiàng)卡有時(shí)和的去除掉問(wèn)題可能就沒(méi)有了。該行無(wú)文字時(shí),光標(biāo)高度與的一致。 1.解決頁(yè)面使用overflow: scroll在iOS上滑動(dòng)卡頓的問(wèn)題? 首先你可能會(huì)給頁(yè)面的html和body增加了height: 100%, 然后就可能造成IOS上頁(yè)面滑動(dòng)的卡頓問(wèn)題。解決方案...
摘要:解決頁(yè)面使用在上滑動(dòng)卡頓的問(wèn)題首先你可能會(huì)給頁(yè)面的和增加了然后就可能造成上頁(yè)面滑動(dòng)的卡頓問(wèn)題。頁(yè)面橡皮彈回效果遮擋頁(yè)面選項(xiàng)卡有時(shí)和的去除掉問(wèn)題可能就沒(méi)有了。該行無(wú)文字時(shí),光標(biāo)高度與的一致。 1.解決頁(yè)面使用overflow: scroll在iOS上滑動(dòng)卡頓的問(wèn)題? 首先你可能會(huì)給頁(yè)面的html和body增加了height: 100%, 然后就可能造成IOS上頁(yè)面滑動(dòng)的卡頓問(wèn)題。解決方案...
閱讀 2362·2021-09-27 13:35
閱讀 616·2019-08-30 15:55
閱讀 867·2019-08-30 15:53
閱讀 613·2019-08-30 15:52
閱讀 2209·2019-08-30 12:59
閱讀 2348·2019-08-29 16:42
閱讀 1550·2019-08-26 18:26
閱讀 2522·2019-08-26 13:48