如何用特殊字符包装选定的文本并解开contenteditable div简单?

时间:2013-11-27 07:10:23

标签: javascript html contenteditable getselection

回答中没有给出任何类型的插件参考。我使用的是插件所见即所得的编辑器。

function blanks(){
    wrap("*");
}

function wrap(tag) {
    var sel, range;
    var selectedText;
    if (window.getSelection) {
        sel = window.getSelection();
        if (sel.rangeCount) {
            range = sel.getRangeAt(0);
            selectedText = range.toString();
            range.deleteContents();
            range.insertNode(document.createTextNode('|' + tag + selectedText + tag + '|'));
        }
    }
    else if (document.selection && document.selection.createRange) {
        range = document.selection.createRange();
        selectedText = document.selection.createRange().text + "";
        range.text = '|' + tag + selectedText + tag + '|';
    }

参考stackoverflow注释框文本选择粗体并删除粗体。

1 个答案:

答案 0 :(得分:0)

我没有能力以具体的方法回答这个问题,但从概念上讲,这是一项简单的任务。

可以容纳的容器的内容可以减少为字符串。字符串是一个字符列表。每个字符在此列表中都有一个位置或索引。

索引通常是从零开始的,因此我们假设对于这种情况。

如果您想要使用特定值CHAR包装一系列字符,它可能如下所示:

var result = string.slice(0, index) + CHAR + string.slice(index, size) + CHAR + string.slice(index + size);

index是第一个字符的位置,size是选择中的字符数。