私は現在 WYSIWYG ソリューションに取り組んでおり、範囲を指定してノードを正しく選択する機能が必要です (これは、コンテンツだけでなく、ノード自体を意味します)
DOM lvl2 には明らかにこのw3.org/rangesの機能があり、それを定義します
range.selectNodeContents() // Select the contents within a node
と
range.selectNode() //Select a node and its contents
問題は、selectNode() が Firefox や ie9 で完全に動作する場合でも、Webkit ブラウザー (最終的には Chrome と Safari) では実現できないように見えることです。Webkit では、selectNodeContents() と selectNode() の両方がノード コンテンツのみを選択します (仕様によると、これはバグのようです)。
それを機能させるために、使用して selectNode() ゴールをエミュレートしようとしまし
たが、結果は同じです。どこでも機能しますが (もちろん > 8)、Webkit ブラウザーでは機能しません..
range.setStartBefore(node);
range.setEndAfter(node);
試してみたい場合は、ここで再生できる小さな jsfiddle を作成しました(コンソールを開いて、Webkit とは異なる console.warn の結果を確認してください :/ )
よく検索しましたが、Webkit ブラウザーで実際に完全なノードを選択する方法が見つかりません。奇跡的に、あなたの何人かはそれを行う方法、または私の探求を続けるためのヒントを知っていますか? :/
ps : 私は "rangy" lib を知っていますが、自分のプロジェクトでは使用できません。