有搞js的吗? 有一个问题,我想点击某个按钮,就可以在div中光标位置插入指定文字,怎么做 5
1个回答
展开全部
var range = window.getSelection().getRangeAt(0);
range.insertNode(document.createTextNode('新增文本'));
追问
可以再详细一点吗?
追答
这是DOM中的范围。范围指代你页面中的选中区域。
var selection = window.getSelection();//返回当前选中的范围集合。范围可以有多个。
var range = selection.getRangeAt(0);//获取第一个范围,一般的交互操作只会产生一个范围
剩下的你百度搜索一下“html dom range”。就可以了。
思路告诉你一下:
点击按钮时,判断range是否在你的div范围内。如果在你希望的div返回内,你就在光标位置插入指定文字,否则,用户可能没有在div中编辑,这时候点是无效的,或者你自动追加到div的末尾。参考一下教程:http://wenku.baidu.com/link?url=SucEsJCIaKJXdCoEQIa50AsHsgATZrv6E-E6oaUzeT6juNABqw126Kj6Xf0ZVPRbPF_3tWvSo-Q3SmdOBVsujN_YJadQJF5oA4R6GXEOFeu
考虑如果用户在div中选中了某一段文字,这时候用户再点击按钮,该如何处理?建议替换选中的文字。
用户点击按钮时,div会失去焦点,也就是光标位置丢失了,你是否需要为用户恢复光标位置?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询