あなたはこの
var strong=document.createElement("strong");
var range=window.getSelection().toString().getRangeAt(0);
range.surroundContents(strong);
このを探しているあなたはちょうどあなたが本当のユーザーとの対話を使用して囲むようにしたいものを選択する必要が
第三部のためでした。あなたたくは第二の部分については、動的に
var range=document.createRange();
range.setStart(parentNode[textNode],index to start[X])
range.setEnd(parentNode[textNode],index to end[Y])
range.surroundContents(strong);
それを行う場合
range.deleteContents()
第一の部分は、要素あなたの
するvar textnode = //ノード単純な反復処理を使用して行うことができます 働いています
textnode.splitText(offset)
offset-どの位置でテキストノードの分割が行われるか 親編集可能要素の2つの子ノードが作成されました
親編集可能要素ノードで単純なinsertBefore()を使用します。
あなたは
、それは間違いなく誰かがどうなるのかの実際の例を明確にする助けと何」でしょう彼らがそれをするべきかどうか、そして最も重要なのはなぜそうしようとしているのか。 – John
@ジョン実際の世界の例を挙げました。これはMarkdownのWYSIWYGエディタです。 –
MarkdownのためのWYSIWYG?私は一度HTML-> MD変換器を実装しようとしました(すでに素晴らしいパーザーを持っていましたが、私はMDライターしか必要ありませんでした)、それはMDが貧弱なために無意味なプロジェクトになりました。 WYSIWYG(HTMLモード)とソースモード(MD出力)をプロのプロジェクトに十分に同期させることは決してできません。 – Reinmar