将文本随意插入网页表单的 textarea
原作者:我佛山人 | 出处:5D多媒体 |
在网页表单的<textarea>中,我们有时候需要将文本插入到光标所在的地方,或是替换掉选区内的文字。这时候,用普通的.value+="text"就无能为力了。下面这段测试代码可以解决这个问题,供大家参考:
function getActiveText() {
obj.currPos = document.selection.createRange().duplicate()
//对象自定义属性currPos为文档中当前激活选中区被建立的TextRange对象的副本
}
function AddText(str) {
if (obj.currPos)
//如果对象obj存在属性currPos
obj.currPos.text=str
//设置对象obj当前激活选中区被建立的TextRange对象的文本为参数str的值
//实现在光标位置插入参数str的值或者用参数str的值来替换选中区文本
else obj.value+=str
//如果对象obj的自定义属性currPos不存在
//直接把参数str的值添加到对象obj的值后面
}
</script>
<textarea id="obj" onfocus="getActiveText()" onchange="getActiveText()"></textarea>
<button onClick="AddText('中文')">AddText</button>
<button onClick="AddText('English')">AddText</button>