尹倉在線升級至2.3

尹倉在線升級至2.3,搭載最新版本(2023-02-06)尹倉碼表。

本次升級新增了觸屏光標顯示,以及左右移動光標的功能。

尹倉在線輸入法,英文名為ejime,因此欲找其最新版本,則大膽輸入:

https://ejsoon.win/ejime

在程式代碼編寫調試過程中,遇到了不少難題。

固定文本框滾動位置

比如firefox跟chromium對於文本框的輸入處理不盡相同,firefox會跟隨光標位置下移,而chromium會識別為全部內容刷新而移到底部。

因此,在鍵盤輸入模式中,固定文本框的滾動位置是必要的。

而本次加入的功能也使其在光標走到下面看不見時能自動下滾。

輸入文字也被視為文本框滾動

文本框滾動時,光標會消失,因為如果不消失,那它就會固定在不對的地方。如果隨之移動,那會觸發相當多的事件,並且移出場外時也還是要消失(而光標有「不能出場」的設置)。

而輸入文字,原本是希望光標不消失,但不管firefox還是chromium,在文本框輸入文字時,都會觸發滾動。

最終我使用了setTimeout的辦法,去實現異步,這是我在其它地方見一些高手用過的。

找到光標位置

找到光標絕對位置是很難的,網上沒有現成的簡單實現的辦法。

我仿照網上的方法,在textarea的背面放一個樣式一致的div,通過插入一個span來定位光標。

之後遇到「連續空格定位不準」的問題,原先我認為無法解決,經過兩日研究,找到了解決辦法。

當然因為世界上的設備很多,我手頭上能測試的設備極其有限,因此光標定位不準或許還會在某些設備上發生。

光標本身不會實際影響輸入框的內容。

為甚麼不用原生光標?

因為當輸入框被激活時,手機會彈出自帶觸屏輸入法。

當然,如果能找到輸入框激活時也不彈出輸入法的方法,那是最好的。

意義

  • 網頁輸入法是學習倉頡,乃至其它形碼輸入法,最便捷的方式。
  • 當手上設備沒裝有倉頡輸入法時有用(比如剛灌完新系統,手機恢復出廠設置,臨時用別人的手機或電腦,在公用電腦上輸入文字,等等)。

當然文本內容只能靠複製粘貼,從網頁上轉移出去。因此並不能替代本機安裝的輸入法。

Leave a Comment