实现选中文字添加连接

/**js实现选中文字添加连接**/
    function editFont(idNode,href,addBtn){
        var selectionStart, selectionEnd;
    var textarea = document.getElementById(idNode);

    document.onkeyup = document.onmouseup = function(event){
        event = event || window.event;
        var keyCode = event.keyCode || event.which;

        var userSelection;
        if (window.getSelection) { //现代浏览器
            userSelection = window.getSelection();
        } else if (document.selection) { //IE浏览器 考虑到Opera,应该放在后面
            userSelection = document.selection.createRange();
        }

        var getRangeIndex = function(selectionObject) {
            if (window.getSelection)
                return [textarea.selectionStart, textarea.selectionEnd];
            else { // 较老版本Safari!
                var range               = document.selection.createRange();             //对选择的文字create Range
                // var selectText          = range.text;                                //选中的文字
                var selectTextLength    = range.text.length;                            //选中文字长度
                textarea.select();                                                      //textarea全选
                //StartToStart、StartToEnd、EndToStart、EndToEnd
                range.setEndPoint("StartToStart", document.selection.createRange());    //指针移动到选中文字开始
                var selectTextPosition  = range.text.length;                            //选中文字的结束位置
                range.collapse(false);                                                  //将插入点移动到当前范围的开始
                range.moveEnd("character", -selectTextLength);   //更改范围的结束位置,减去长度,字符开始位置,character不能改
                range.moveEnd("character", selectTextLength);   //再更改范围的结束位置,到字符结束位置
                range.select();                                                         //然后选中字符

                //返回字符的开始和结束位置
                return [selectTextPosition - selectTextLength, selectTextPosition];
            }
        }

        var rangeIndex = getRangeIndex(userSelection);
        selectionStart = rangeIndex[0];
        selectionEnd   = rangeIndex[1];
    };

    //加粗  (斜体,等都在此操作,那么如何解除加粗和斜体呢)
    document.getElementById(addBtn).onclick = function(){
        textarea.value = textarea.value.substring(0, selectionStart)
            + '<a href='+href+'>' + textarea.value.substring(selectionStart, selectionEnd)
            + '</a>' + textarea.value.substring(selectionEnd);
    };
    }
editFont('content','http://www.baidu.com',"wrapText");
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值