替换textarea的文本编辑框的实现,可现实文字输入与显示图片、表情

本文介绍了三种方法实现textarea的文本编辑增强,包括在textarea内添加img元素(IE支持)、利用contentEditable属性(跨平台但手机浏览器不支持)以及使用iframe的designMode属性(兼容pc和手机)。通过execCommand插入表情并获取带标签的内容。

方法1:

通过textare添加子元素img,该方式只有IE支持

 

<textarea id="editor" >图片:</textarea> 

<script type="text/javascript" > 
var editor = document.getElementById('editor'); 
var img = document.createElement('img'); 
img.src = 'url'; 
editor.appendChild(img); 

</script> 

 

 

 

 

 

然后通过editor.innerHTML获取带标签的内容

 

方法2:

通过div的contentEditable=true属性,经测试 谷歌 火狐 IE opera都支持,但手机浏览器不支持

 

<div contentEditable="true" id="editor"  style="height:70px;border-style:solid; border-width:1px; border-color:#AEEEEE"></div>
<script type="text/javascript" > 
var editor = document.getElementById('editor'); 
var img = document.createElement('img'); 
img.src = 'url'; 
editor.appendChild(img); 

</script> 

 

 

 

 

 

然后通过editor.innerHTML获取带标签的内容

 

方法3:

通过设置iframe的document.designMode为On可以让其可编辑,一般用在富文本编辑器组件中。pc端 手机端均可。

<iframe frameborder="1" id="editor" src="javascript:;" style="width:100%;">
<script type="text/javascript" > 
$(document).ready(function(){
document.getElementById("editor").contentWindow.document.designMode="On";
})

var editor = document.getElementById('editor');
editor.contentWindow.focus();
editor.contentWindow.document.execCommand("insertHTML", false, "<img src='"+Url+"'></img>");
editor.contentWindow.document.getSelection().collapse();
</script>

 


execCommand会在当前光标处插入表情,插入之前调用focus,之后再调用collapse会紧接在表情后面获得焦点

通过document.getElementById('editor').contentWindow.document.body.innerHTML获取文本内容
 

 

-----------------------------------------------------------------------------------------------

RegExp构造函数第一个参数为正则表达式的文本内容,而第一个参数则为可选项标志.标志可以组合使用 
•g (全文查找) 
•i (忽略大小写) 
•m (多行查找)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值