搜索

有思俱乐部学习园地

U.UF.E.addRange() 替换选区内容处理,可添加元素html代码。


函数源码:

/**
* 替换选区内容处理,可添加元素html代码。
*
* @param   {string} 需要插入的文字 
* @param   {object} range光标对象
* @param   {boolean} 是否聚焦到最后
* @return   {object} 光标编辑对象
*/
U.UF.E.addRange = function (str, range, islast) {
    //html5得到光标的处理
    if (window.getSelection) {
        var _selection = window.getSelection(), //获取选取对象
            _frag = range.createContextualFragment(str); //创建选取
        range.deleteContents(); //移除文字
        _selection.removeAllRanges(); //移除选取
        range.insertNode(_frag); //插入需要写入的内容
        //判断光标是否放在最后面
        if (islast) {
            range.collapse(false);
        }
        _selection.addRange(range); //把替换的文章添加到当前指定的选取中
    }
    //ie系列的处理,ie系列不支持win.getSelection,有自己独特的属性
    else {
        range.select(); //选取聚焦
        range.pasteHTML(str); //添加选取文字
        //判断光标是否放在最后面
        if (islast) {
            range.collapse(false);
        }
    }
    //上面重新操作光标后,需要重新聚焦
    return U.UF.E.getRangeAt();
}

工作人员

 
作者: 14互联网G5-2 杨思强
信息录入: 14互联网G5-2 杨思强