本文介绍如何使用JavaScript将textarea中的换行符转换为br标签,以及针对微软HTML编辑控件在contentEditable模式下回车插入p标签而非br标签的问题,提供通过onkeypress事件拦截按键并动态插入换行符的解决方案。
1楼
textarea回车换行转br标签处理
使用JavaScript代码将textarea的值中的换行符\n替换为<br>标签,代码如下:textarea.value.replace(/\n/g, "<br>");
2楼
另一种处理方式是将回车换行符\r\n替换为<br>标签,代码示例为:s=textarea.value.replace(/\r\n/g, "<br>");
3楼
实现按下回车键时立即进行替换处理。
contentEditable编辑框回车处理方案
定义一个具有contentEditable="true"属性且边框为1像素实线黑色的div元素,ID为a,代码如下:V ID="a" contentEditable="true" style='border:1 solid black'>
此前已有许多人讨论过此问题,由于代码较多且方法复杂,个人未深入研究的必要。经过实际测试,发现解决起来相对简单。
关于微软HTML编辑控件在单击回车时会插入<p>标签而非<br>标签的解决方案。
展示一个未经过脚本处理的编辑控件,其样式为边框1像素实线黑色,且contentEditable="true",代码如下:<div style='border:1 solid black' contentEditable="true">未经过脚本处理的编辑控件</div>
开始编写JavaScript脚本部分。
定义元素a的onkeypress事件处理函数。
判断按键代码是否为13(即回车键)。
获取当前文档选区范围对象txtobj。
使用三目复合表达式处理:若txtobj.text为空,则将其设置为\n;否则先清除选区再设置txtobj.text为\n,以解决存在选中文字时回车的光标定位问题。
重新创建选区范围并选中,以更新光标位置。
返回false以阻止默认行为。
}}
结束脚本标签。
4楼
实现按下回车键时立即进行替换处理。
定义一个具有contentEditable="true"属性且边框为1像素实线黑色的div元素,ID为a,代码如下:V ID="a" contentEditable="true" style='border:1 solid black'>
此前已有许多人讨论过此问题,由于代码较多且方法复杂,个人未深入研究的必要。经过实际测试,发现解决起来相对简单。
关于微软HTML编辑控件在单击回车时会插入<p>标签而非<br>标签的解决方案。
展示一个未经过脚本处理的编辑控件,其样式为边框1像素实线黑色,且contentEditable="true",代码如下:<div style='border:1 solid black' contentEditable="true">未经过脚本处理的编辑控件</div>
开始编写JavaScript脚本部分。
定义元素a的onkeypress事件处理函数。
判断按键代码是否为13(即回车键)。
获取当前文档选区范围对象txtobj。
使用三目复合表达式处理:若txtobj.text为空,则将其设置为\n;否则先清除选区再设置txtobj.text为\n,以解决存在选中文字时回车的光标定位问题。
重新创建选区范围并选中,以更新光标位置。
返回false以阻止默认行为。
}}
结束脚本标签。
5楼
实现按下回车键时立即进行替换处理。
定义一个具有contentEditable="true"属性且边框为1像素实线黑色的div元素,ID为a,代码如下:V ID="a" contentEditable="true" style='border:1 solid black'>
此前已有许多人讨论过此问题,由于代码较多且方法复杂,个人未深入研究的必要。经过实际测试,发现解决起来相对简单。
关于微软HTML编辑控件在单击回车时会插入<p>标签而非<br>标签的解决方案。
展示一个未经过脚本处理的编辑控件,其样式为边框1像素实线黑色,且contentEditable="true",代码如下:<div style='border:1 solid black' contentEditable="true">未经过脚本处理的编辑控件</div>
开始编写JavaScript脚本部分。
定义元素a的onkeypress事件处理函数。
判断按键代码是否为13(即回车键)。
获取当前文档选区范围对象txtobj。
使用三目复合表达式处理:若txtobj.text为空,则将其设置为\n;否则先清除选区再设置txtobj.text为\n,以解决存在选中文字时回车的光标定位问题。
重新创建选区范围并选中,以更新光标位置。
返回false以阻止默认行为。
}}
结束脚本标签。