W3C 準拠のブラウザーで JavaScript 範囲オブジェクトの html 文字列を取得する方法はありますか?
たとえば、ユーザーが次の項目を選択したとします。 メソッドHello <b>World</b>
を使用して、"Hello World" を文字列として取得できます。Range.toString()
(FirefoxではドキュメントのgetSelection
メソッドでも可能です。)
しかし、内部の HTML を取得する方法が見つからないようです。
DocumentFragment
いくつかの検索の後、範囲をオブジェクトに変換できることがわかりました。
しかし、プロパティDocumentFragments
はありませんinnerHTML
(少なくとも Firefox では。Webkit や Opera は試していません)。
私には奇妙に思えます: 選択したアイテムにアクセスする方法が必要であることは明らかです。
documentFragment
を作成し、ドキュメント フラグメントを別の要素に追加して、その要素の を取得できることに気付きましたinnerHTML
。
しかし、その方法は、選択した領域内の開いているタグを自動的に閉じます。
それに加えて、文字列として取得するためだけにdomに取り付けるよりも、明らかに「より良い方法」があります。
では、Range または DocFrag の html の文字列を取得する方法は?