典型的な wysiwyg エディター html (太字、アンカー、リスト) を含む contenteditable div があります。
現在のカーソルが onKeyDown で、div の最初と最後にあるかどうかを判断する必要があります。この理由は、カーソルの位置と押されたキーに基づいて、この div をバックスペースの前の div とマージするか、Enter で新しい次の div を作成したい場合があるためです。
範囲をいじってきましたが、要素内で html を操作していると、かなり複雑になります。
簡単な解決策を見落としているに違いないと思っています。
これを判断する比較的簡単な方法はありますか - 私は Rangy のようなライブラリを使用することにオープンです。
ありがとう!
編集:私はこれらの行に沿って何かを考えています:
$('.mycontenteditable').bind('keydown', handle_keydown)
handle_keydown = function(e) {
range = window.getSelection().getRangeAt(0)
start_range = document.createRange()
start_range.selectNodeContents(this.firstChild)
start_range.collapse(true) // collapse to start
is_start = start_range.compareBoundaryPoints(Range.START_TO_START,range)
end_range = document.createRange()
end_range.selectNodeContents(this.lastChild)
end_range.collapse(false)
is_end = end_range.compareBoundaryPoints(Range.END_TO_END,range)
}
このようなもので奇妙な問題に遭遇するでしょうか?