主页 > 知识库 > 一款支持插入表情的编辑器实现代码(简单思路挺重要)

一款支持插入表情的编辑器实现代码(简单思路挺重要)

热门标签:兴化400电话办理多少钱 企业电话机器人办理 四平电话机器人哪家好 长春销售外呼系统业务 株洲外呼营销系统有哪些 天津电销卡外呼系统线路 灵声智能电话机器人招聘 长春防封卡电销卡套餐 智能电销机器人真的好吗
下面是一个表情列表,为了简单我直接在li里面放图片的文件名称,而class 属性用来存放对应的标记
复制代码 代码如下:

ul id="faceList">
li class="wx">0.gif/li>
li class="pz">1.gif/li>
li class="se">2.gif/li>
/ul>

接下来把上面的 li 变成 img
复制代码 代码如下:

var faceDir = "images/"; //配置表情目录
var iframeDocument = null;
var iframeWindow = null;
var isIe = false;
$.each($("#faceList>li"), function(){ //展现表情
var node = document.createElement("img");
node.className = $(this).attr("class");
node.src = faceDir+$(this).html();
this.innerHTML = "";
this.appendChild(node);
});

放一个 iframe 用来做编辑器
复制代码 代码如下:

iframe id="Edit" frameborder="0">/iframe>

先得到 ifame
复制代码 代码如下:

iframeWindow = document.getElementById("Edit").contentWindow;iframeDocument = document.getElementById("Edit").contentWindow.document; iframeDocument.designMode="On"; //打开iframe 编辑模式


.designMode="On"; 这个方法还是蛮常见的。 刚开始做的时候还想用 textarea 但是textarea不能显示图片。这里在实际过程中发现与 textarea 的一个差异,iframe 内不会自己换行,所以为iframe 添加了一个body设置了一个word-wrap属性
复制代码 代码如下:

iframeDocument.write("html>body style=\"word-wrap:break-word;text-align: left; background-color: #fff; border:1px solid #CCC; margin:0px; padding:0px;overflow:hidden;\">/body>/html>");

下面实现,在iframe 插入图片表情的过程(代码内有注释)
复制代码 代码如下:

$("#faceList>li").click(function(){
var $this = $(this);
var $thisImg = $(this).find("img:eq(0)"); //当前点击的表情(IMG标记)
document.getElementById("Edit").contentWindow.focus(); //使编辑区域得到焦点
var r = null;
if(document.selection) //处理兼容性问题
{
//把表情放入iframe
r = iframeDocument.selection.createRange();
iframeDocument.selection.empty();
r.pasteHTML($thisImg[0].parentNode.innerHTML.toString());
}
else if(window.getSelection)
{
r = iframeWindow.getSelection().getRangeAt(0);
iframeWindow.getSelection().removeAllRanges();
var node = document.createElement("img");
node.className = $thisImg.attr("class");
node.src = $thisImg.attr("src");
r.surroundContents(node);
}
});

到这里,就完成了插入表情的过程。还有最后一件事情:翻译img 标记
复制代码 代码如下:

function GeteEditData()
{
var edit = iframeDocument.getElementsByTagName("body")[0].innerHTML;
//在内存中Copy一个该节点副本,以保全文档流格式
var str = new String(edit);
var $content = $("div>"+str+"/div>");
var imgNode = $("#faceList img");
$.each(imgNode, function(){
var mark= "/:"+$(this).attr("class").toString();
var fs = $content.find("."+$(this).attr("class").toString());
if(fs!=nullfs[0]!=undefined)
{
fs.replaceWith(mark);
}
});
}

其实还有很多问题没有处理,俺也只是一知半解。把代码贴出来希望能帮助一些朋友解决问题。
您可能感兴趣的文章:
  • Android输入框添加emoje表情图标的实现代码
  • Android高仿微信表情输入与键盘输入详解
  • Android编程开发之EditText实现输入QQ表情图像的方法
  • Android编程开发实现TextView显示表情图像和文字的方法
  • Android编程实现QQ表情的发送和接收完整实例(附源码)
  • 基于Android开发支持表情的实现详解
  • Android开发技巧之像QQ一样输入文字和表情图像
  • 使MySQL能够存储emoji表情字符的设置教程
  • 基于jQuery实现的QQ表情插件
  • 完整的Android表情功能处理方案

标签:运城 新疆 巴彦淖尔 石嘴山 黑龙江 青海 漯河 贵港

巨人网络通讯声明:本文标题《一款支持插入表情的编辑器实现代码(简单思路挺重要)》,本文关键词  一款,支持,插入,表情,的,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《一款支持插入表情的编辑器实现代码(简单思路挺重要)》相关的同类信息!
  • 本页收集关于一款支持插入表情的编辑器实现代码(简单思路挺重要)的相关信息资讯供网民参考!
  • 推荐文章