Chinaunix首页 | 论坛 | 博客
  • 博客访问: 423153
  • 博文数量: 155
  • 博客积分: 2590
  • 博客等级: 少校
  • 技术积分: 2161
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-25 09:33
文章分类

全部博文(155)

文章存档

2015年(1)

2014年(2)

2013年(55)

2012年(97)

分类: 系统运维

2012-12-06 16:58:24

项目页面需要一个简单的文本编辑器,网上的那些富文本编辑器功能都很强大,很多东西用不到,所以自己用js写了一个简单的文本编辑器。

代码如下:

  1. >  
  2. <html>  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=gbk">  
  5. <title>简单文本编辑器title>  
  6. head>  
  7. <body>  
  8.     <div  
  9.         style="width: 450px; height: 30px; border-top: 1px solid; border-left: 1px solid; border-right: 1px solid;">  
  10.         <select onchange=document.execCommand('FontSize',false,this.value)>  
  11.             <option value=3>3号字option>  
  12.             <option value=4>4号字option>  
  13.             <option value=5>5号字option>  
  14.          <option value=6>6号字option>  
  15.             <option value=7>7号字option>  
  16.         select> <input type=button value="红色" onclick=document.execCommand('ForeColor',false,'#ff0000')>  
  17.         <input type=button value="绿色" onclick=document.execCommand('ForeColor',false,'#00ff00')>  
  18.         <input type=button value="蓝色" onclick=document.execCommand('ForeColor',false,'#0000ff')>  
  19.         <input type=button value="左对齐"  
  20.             onclick="document.execCommand('JustifyLeft')"> <input  
  21.             type=button value="居中" onclick=document.execCommand('JustifyCenter')>  
  22.         <input type=button value="右对齐" onclick=document.execCommand('JustifyRight')>  
  23.     div>  
  24.    <div id="editArea" contenteditable style="height: 200px; width: 450px; border: 1px solid; overflow-y: auto;">  
  25.     div>  
  26.     <div align="center" style="width: 450px;">  
  27.     <input type="button" value="↓" onclick='htmlsource.value=editArea.innerHTML;'>  
  28.     <input type="button" value="↑" onclick='editArea.innerHTML=htmlsource.value;'>  
  29.     div>  
  30.    <div>  
  31.         <textarea id="htmlsource" name="htmlsource" cols="62" rows="10">textarea>  
  32.     div>  
  33. body>  
  34. html>  

实现原理:

 

1.将id为editArea的div元素添加contenteditable,这个div则拥有了编辑的功能,document执行的execCommand函数就能针对这个div中选中的区域进行相应的操作。

2.至于document的execCommand函数怎么用的,网上有很多解释,我就不重复说了。

效果图如下所示:(在chrome和IE8下显示的html源码有点不同,换行回车,chrome用

表示的,而IE8则用

表示的)

chrome:

IE8:

行业门户()文章,希望大家可以留言建议

阅读(695) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~