javascript怎么获取鼠标选中的文字并对其进行操作

我需要做一个HTML在线编辑器类似的东西,需要鼠标选中文字然后点击按钮给文字加粗或设置颜色,要求兼容各浏览器,javascript或者jQuery写的都行,原理我基本都了... 我需要做一个HTML在线编辑器类似的东西,需要鼠标选中文字然后点击按钮给文字加粗或设置颜色,要求兼容各浏览器,javascript或者jQuery写的都行,原理我基本都了解,但是具体代码不知道该怎么写,问题解决了分数不是问题,因为不确定是否有人回答所以分数先放少点,问题解决了再追加分数 展开
 我来答
wocabuzhidao
推荐于2017-11-26 · TA获得超过294个赞
知道小有建树答主
回答量:331
采纳率:100%
帮助的人:192万
展开全部
给我100分
我给你把代码贴上来

这个实现还是很容易的!
算了,你还是看着给把!
document.onmouseup=function(e){
content=window.getSelection().toString();
if(content!=''){
var len=content.length;
var target=e.target;
var position=target.innerHTML.indexOf(content);
var position2=position+len;
var tempstr1=target.innerHTML.substring(0,position);
var tempstr2=target.innerHTML.substring(position2);
content="<span style='color:red;'>"+content+"</span>";
target.innerHTML=tempstr1+content+tempstr2;
}}
实现了选中了就变红,自己扩展下把!
还有这个暂时只在chrome下能用,ie 你自己改把!
追问
你这个跟我要求的差的不是一点啊,我要的是点按钮改变,不是鼠标松开,而且你这个问题还非常多,交叉着选中文字你就知道了
liujinqing518
2014-02-10 · TA获得超过289个赞
知道小有建树答主
回答量:223
采纳率:0%
帮助的人:113万
展开全部
用selection对象,但是我做过,比较繁杂,火狐和ie下还不一样,一个是document.selection. 一个是window.getSelection().getRangeAt(0);比较复杂,动作得分解好多,虽然我说的跟没说一样,但是我个人建议是做这个得两三个人一起开发,其次参考文档或者别人写的。而且网上的方法不够兼容建议找正规的插件(百度团队开发的有);
追问
好吧,现在遇到新的问题了,选中的文字能够获取到,但是我需要点按钮给选中的字加粗,我点的时候选中的内容会失去焦点,所以获取不到东西了,有办法不让选中的内容失去焦点或者不允许点的按钮得到焦点吗?
追答
呵呵  可以这样啊 ,e.preventDefault()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
星辰坠落9527
2017-08-29
知道答主
回答量:1
采纳率:0%
帮助的人:961
引用wocabuzhidao的回答:
给我100分
我给你把代码贴上来

这个实现还是很容易的!
算了,你还是看着给把!
document.onmouseup=function(e){
content=window.getSelection().toString();
if(content!=''){
var len=content.length;
var target=e.target;
var position=target.innerHTML.indexOf(content);
var position2=position+len;
var tempstr1=target.innerHTML.substring(0,position);
var tempstr2=target.innerHTML.substring(position2);
content="<span style='color:red;'>"+content+"</span>";
target.innerHTML=tempstr1+content+tempstr2;
}}
实现了选中了就变红,自己扩展下把!
还有这个暂时只在chrome下能用,ie 你自己改把!
展开全部
选中变红以后 如何在选中的部分再选中其中的一部分让他在上面叠加变绿?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-02-10
展开全部
都有开源插件何必还要自己写呢
追问
自己写的跟人家写的肯定是不一样的,我只要几个功能就行了,而且我这是直接编辑整个页面的,跟别的也不一样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yugi111
2014-02-10 · TA获得超过8.1万个赞
知道大有可为答主
回答量:5.1万
采纳率:70%
帮助的人:1.3亿
展开全部
我在回答你问题的时候,用的就是这样的编辑器,你看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式