ついて記述しています。遭遇した問題について記述しています。問題点CodeMirrorには2つの入力モードが用意されており、それはinputStyleというオプションで切り替えることができる。スマホから使用した時、日本語入力(というかIME)に関しては、この2つの入力モードのどちらでも何かしらの問題が発生する。textarea見えないテキストエリアを使用して入力を行う方式。入力しているテキストエリアと、表示されているcontenteditableなエディタ部分の要素との違いが問題を発生させる。文章をタッチするとtextareaが起動してイベントを拾ってしまうため、文字選択ができない問題がある。入力は問題なくできるように思えるが、IMEで確定前の文字を削除すると文字が二重で入力されたりする。contenteditablecontenteditableの要素に直接入力する方法。いってもキー入力をエミュレートしてCodeMirror内で複雑なことをしているのだけれど・・。この入力方式の場合は致命的な問題がある。なんとIMEがきかない。「て」と入力した時点で「て」が確定されてしまい、「手」のような漢字に変換することができない。CodeMirrorを日本で使う場合は、モバイルでまったく使い物にならない。○この問題は本家でIssueにもなっている。解決方法イベントの流れをみると、どうやらIME入力中にkeypressとかkeydownが発生するのが主な原因だったようなので、IME入力中のkeypressはキャンセルするようにした。false)}残る問題点とりあえずこれだけやれば日本語入力や文字の選択が普通にできた。IME入力中にエディタの内容が外部から書き換わった場合(CodeMirrorのAPIを使って書き換えたりした時)に、MobileSafariのタブ単位でエラーが発生し、タブが強制リロードされるという致命的な問題がある。MobileSafariでは、contenteditableの要素に対してIMEで入力中に、対象の要素が削除されると入力した文字が行き場を失ってしまいエラーになってしまうみたいだった。通常の使い方であれば、IME入力中にエディタの中身を書き換えるようなことはしないので大丈夫ではあるのだけれど、たとえば同時編集機能にCodeMirrorを使っていて、他のユーザからエディタ内の文字が書き換えられるようなシチュエーションでは問題になる。