本文介绍如何使用JavaScript在Web页面中获取用户选中的文本框内容,并将指定标签或文字动态插入到指定位置。通过document.selection.createRange()获取选中范围,结合ASP.NET TextBox控件实现富文本编辑器的基础功能,如加粗或插入表情。
JavaScript实现文本框文字选中与动态插入功能
相关脚本代码实现如下:
<script language="javascript" src="js/settags.js"></script>
定义函数 AppTag(tagcode)
{
将传入的标签代码追加到名为 PostMessage 的表单中 Message 文本框的值末尾;
}
定义函数 InsertTag(tagbegin, tagend)
{
首先判断当前浏览器是否支持 document.selection 对象,且选区类型是否为 "Text";
若满足条件,则通过 document.selection.createRange() 创建选区对象;
从选区对象中获取当前选中的文本内容,赋值给变量 ch_text;
将选区文本替换为:开始标签 + 选中文字 + 结束标签;
}
否则(即未选中文字或不支持该API);
{
document.PostMessage.Message.value=tagbegin+document.PostMessage.Message.value+tagend;
最后使 Message 文本框获得焦点;
}
}
</script> 调用方式说明:
通过执行操作的图标按钮触发相应动作;
<a href="javascript:AppTag('[ImgFace1]')"><img src="./Images/Face/Face1.gif" border="0"></a>
<a href="javascript:InsertTag('[B]','[/B]')"><img src="./Images/tags/EditorBold.gif" alt="Bold" border="0"></a>
其中 [ImgFace1]、[B] 以及 [/B] 代表需要插入的具体文字或标签内容;
关键步骤:var range = document.selection.createRange();
关键步骤:var ch_text=range.text;
上述代码用于获取文本框中被用户选中的文字部分;
被操作的文本框定义如下:
<asp:TextBox ID="Message" Runat="server" MaxLength="100" TextMode="MultiLine" Rows="15" Width="100%" />