いくつかのクリーンアップ ロジックを備えた小さなインライン エディターを作成しました。したがって、Word ファイルから貼り付けると、すべての書式設定が削除されます。
私の問題は、たとえば 1 つの文を選択して貼り付けた場合、それが置き換えられないことです。これは cleanUp ロジックによるものです。ここで、range を使用して範囲を削除する方法を知る必要があるため、貼り付ける前にこの範囲を削除できます。
いくつかのクリーンアップ ロジックを備えた小さなインライン エディターを作成しました。したがって、Word ファイルから貼り付けると、すべての書式設定が削除されます。
私の問題は、たとえば 1 つの文を選択して貼り付けた場合、それが置き換えられないことです。これは cleanUp ロジックによるものです。ここで、range を使用して範囲を削除する方法を知る必要があるため、貼り付ける前にこの範囲を削除できます。
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);
}
}