簡體   English   中英

用rangy刪除選擇

[英]Delete selection with rangy

我用一些清理邏輯做了一個內聯編輯器。 因此,如果您從Word文件粘貼,它將刪除所有格式。

我的問題是,如果您選擇一個句子然后粘貼,它不會被替換。 這是清理邏輯的二重奏。 現在,我需要知道如何刪除帶范圍的區域,以便在粘貼之前刪除該區域。

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

您可以使用其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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM