0

いくつかのクリーンアップ ロジックを備えた小さなインライン エディターを作成しました。したがって、Word ファイルから貼り付けると、すべての書式設定が削除されます。

私の問題は、たとえば 1 つの文を選択して貼り付けた場合、それが置き換えられないことです。これは cleanUp ロジックによるものです。ここで、range を使用して範囲を削除する方法を知る必要があるため、貼り付ける前にこの範囲を削除できます。

http://jsfiddle.net/eJNKy/3/

4

1 に答える 1

4

deleteContents()メソッドを使用して範囲を削除できます。

Rangy は、jsFiddle で修正しようとしているクロスブラウザーの問題の多くも扱っています。createContextualFragment()で実装と選択オブジェクトを提供しますgetRangeAt()。また、イベントのctrlKeyプロパティを使用する必要があります。keydown更新された jsFiddle は次のとおりです。

http://jsfiddle.net/timdown/eJNKy/6/

決定的な機能は、

function paste(html) {
    var sel = rangy.getSelection();
    if (html && sel.rangeCount > 0) {
        var range = sel.getRangeAt(0);
        range.deleteContents();
        var frag = range.createContextualFragment(html);
        var lastChild = frag.lastChild;
        range.insertNode(frag);
        range.collapseAfter(lastChild);
        sel.setSingleRange(range);
    }
}
于 2012-06-26T13:30:35.130 に答える