keyup
onで、contentEditable div のキャレットの直前の要素への参照を提供する関数を作成しようとしています。
キャレットがテキスト ノードにある場合、関数は を返す必要がありますnull
。キャレットが contentEditable の先頭にある場合、関数は を返す必要がありnull
ます。
ただし、キャレットがテキスト ノードの先頭にあり、このテキスト ノードの直前に Span などの要素がある場合、関数はこの要素への参照を返す必要があります。
また、キャレットが 2 つの Html 要素の間 (たとえば、2 つのスパンの間) に配置されている場合、キャレットの直前の要素、つまり 2 つの要素の最初の要素への参照を返す必要があります。
互いに直後に続く 2 つ以上のテキスト ノードがある場合、それらは 1 つのテキスト ノードと見なされます。
私は何かをまとめ始めました。範囲オフセットを使用して、テキスト ノードにどれだけ入っているかを計算することを検討していますが、複雑すぎるように感じます。私が考えていない明らかな何かがあると思わずにはいられません。