window.getSelection()如何根据开始位置和结束位置添加标签

wildRoseyfl web前端开发  2017-11-19 07:58:28
function addPostil() {
//IE支持的range对象
var ie_range ;
//其他浏览器的range对象
var other_range ;
if(window.getSelection) {
other_range = window.getSelection().getRangeAt(0);
}
else if(document.selection && document.selection.createRange) {
ie_range = document.selection.createRange();
}

if(other_range) {
var selected = other_range.extractContents().textContent;
var text = "[ins id='"+(new Date().getTime())+"' comment='"+value+"']"+selected+"[/ins]";
var textNode = document.createTextNode(text);
other_range.insertNode(textNode);
var content = $(".content").html();
var reg = /\[ins id='(\d*)' comment='([\w\W]*)']([\w\W]*)\[\/ins]/gi;
reg.test(content);
var id = RegExp.$1,
comment = RegExp.$2,
c = RegExp.$3;
var reHtml = "<ins id='"+id+"' comment='"+comment+"' class='postil' >"+c+"</ins>";
content = content.replace(reg, reHtml);
$(".content").html(content);
}
else if(ie_range) {
ie_range.pasteHTML("<ins comment='"+value+"' class='postil' id='"+new Date().getTime()+"'>"+ie_range.htmlText+"</ins>");
ie_range=null;
}
});
}



问题1:上文是根据鼠标选中获取文本的值的方法,但针对一篇文本存在多段的情况,多段选中时如何不合并成一行呢?
问题2:如何能直接根据开始位置和结束位置定义标签添加背景颜色呢?
...全文
369 回复 点赞 打赏 收藏 举报
写回复
回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
相关推荐
发帖
JavaScript
加入

8.5w+

社区成员

Web 开发 JavaScript
申请成为版主
帖子事件
创建了帖子
2017-11-19 07:58
社区公告
暂无公告