快速业务通道

如何开发HTML编辑器

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-20
{
     return node;
   }
   else
   {
     node.style[name] = value;

     for (var i = 0; i < node.childNodes.length; i++)
     {
       var cn = node.childNodes[i];
       if (node.innerHTML != undefined)
       {
         SetNodeStyle(doc, cn, name, value);
       }
     }

     return node;
   }
}

function SetStyle(doc, html, name, value)
{
   var dom = doc.createElement("DIV");
   dom.innerHTML = html;

   for (var i = 0; i < dom.childNodes.length; i++)
   {
     var node = dom.childNodes[i];

     if (node.innerHTML == undefined)
     {
       //如果是文本节点,则转换转换成span 
       var span = doc.createElement("SPAN");
       span.style[name] = value;
       if (node.nodeValue != undefined) span.innerHTML =  node.nodeValue.replace(/\</ig, function() { return "<";  });
       else if (node.textContent != undefined)  span.innetHTML = node.textContent.replace(/\</ig, function() {  return "<"; });
       //替换掉文本节点 
       dom.replaceChild(span, node);
     }
     else
     {
       SetNodeStyle(doc, node, name, value);
     }
   }

   return dom.innerHTML;
} 

2.5 示例

使用以上的代码,就可以相当方便的实现一个HTML编辑器,例如,以下代码实 现将选中文本的字体大小设置为32px:

var range = GetSelectionRange(editorWindow);
var html = SetStyle(editorDoc, range.GetSelectedHtml(),  "fontSize", "32px");
range.Replace(html);

同理,你可以实现设置行距,缩进,插入图片等功能。

3.总结

本文给出的代码兼容IE,Firefox和Chrome,如果有其它问题可以通过EMail或 者WebIM与我联系。

本文配套源码

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号