2

FCKeditor には、現在のカーソル位置に HTML を挿入するInsertHtml API ( JavaScript API ドキュメント) があります。ドキュメントの最後に挿入するにはどうすればよいですか?

このようなものでブラウザのスニッフィングを開始する必要がありますか

if ( element.insertAdjacentHTML )    // IE 
    element.insertAdjacentHTML( 'beforeBegin',  html ) ; 
else                                // Gecko 
{ 
    var oRange = document.createRange() ; 
    oRange.setStartBefore( element ) ; 
    var oFragment = oRange.createContextualFragment( html ); 
    element.parentNode.insertBefore( oFragment,  element ) ; 
} 

または私が逃した祝福された方法はありますか?

編集:もちろん、答えが示唆するように、HTML全体を書き直すことはできますが、それが「祝福された」方法であるとは信じられません。つまり、ブラウザーは持っているものをすべて破棄し、ドキュメントを最初から再解析する必要があります。それは良いことではありません。たとえば、元に戻すスタックが壊れることを期待しています。

4

3 に答える 3

2

GetHTML と SetHTML の組み合わせを使用して現在のコンテンツを取得し、html を追加して、すべてをエディターに再挿入できるようです。とは言っても

このメソッドを使用すると、editor.EditorDocument に以前に登録したリスナーが失われることに注意してください。

それが役立つことを願っています!

于 2008-08-24T19:17:43.020 に答える
1

バギーラインを交換する:element.insertAdjacentHTML('beforeBegin', html);

このjqueryコードで:

try {
      $(html).insertBefore($(element));
      // element.insertAdjacentHTML('beforeBegin', html);

} catch (err) { }
于 2011-04-06T09:30:44.767 に答える