[英]Delete selection with rangy
我用一些清理邏輯做了一個內聯編輯器。 因此,如果您從Word文件粘貼,它將刪除所有格式。
我的問題是,如果您選擇一個句子然后粘貼,它不會被替換。 這是清理邏輯的二重奏。 現在,我需要知道如何刪除帶范圍的區域,以便在粘貼之前刪除該區域。
您可以使用其deleteContents()
方法刪除范圍。
Rangy還處理了您試圖在jsFiddle中修復的許多跨瀏覽器問題。 它提供了createContextualFragment()
實現和帶有getRangeAt()
的選擇對象。 另外,您應該使用keydown
事件的ctrlKey
屬性。 這是更新的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);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.