富文本编辑器,图片单击选中,Range和Selection的使用

目前在做富文本编辑器,想实现一个很简单的功能,单击图片能够选中(描蓝),如CSDN的编辑器就有这个功能:

但奈何这种需求可能不太必要,网上对此有研究的文章几乎没有,或是对选中操作进行泛泛而谈,找不着重点。最后只能潜心研究关键的Selection和Range对象的各种属性和方法,进行无数次的尝试后终于找到完美的方案。

结果很简单,但探索的过程十分艰辛,分享出来给大家减轻负担:

    	img.addEventListener('click', function(){
    		nl=this.parentNode.childNodes
    		for (var i = 0; i < nl.length; i++) {
    			if(this==nl[i]){
    				j=i;break
    			}
    		}
    		range=document.createRange()
    		range.setStart(this.parentNode, j)
    		range.setEnd(this.parentNode, j+1)
    		st.removeAllRanges()
    		st.addRange(range)
    	})

效果如下:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值