Javascript实现DIV可编辑的两大途径

开发 前端
你对使用Javascript实现div可编辑的常见方法是否了解,这里和大家分享一下,它主要用来实现网页内容的即时编辑,增加页面的可用性、交互性。

本文和大家重点讨论一下用Javascript实现div可编辑的常见方法,这里主要有两种,希望本文的介绍对你的学习有所帮助。

用Javascript实现div可编辑的常见方法

功能:实现网页内容的即时编辑,增加页面的可用性、交互性。

◆方法一:直接通过textarea标签实现,请运行下边代码:

  1. > 
  2. <HTML> 
  3. <HEAD> 
  4. <TITLE>NewDocumentTITLE> 
  5. <METANAMEMETANAME="Generator"CONTENT="EditPlus"> 
  6. <METANAMEMETANAME="Author"CONTENT=""> 
  7. <METANAMEMETANAME="Keywords"CONTENT=""> 
  8. <METANAMEMETANAME="Description"CONTENT=""> 
  9. <styletypestyletype="text/css"> 
  10. #info{  
  11. font-size:12px;  
  12. overflow:hidden;  
  13. background-color:#ffffcc;  
  14. color:black;  
  15. padding-right:5px;  
  16. padding-left:5px;  
  17. font-family:courier;  
  18. width:100%;  
  19. letter-spacing:0;  
  20. line-height:12px;  
  21. border-style:none;  
  22. }  
  23. style> 
  24. HEAD> 
  25.  
  26. <BODY> 
  27.  
  28. <dividdivid="sdf"style="width:400px;"> 
  29. <textareaidtextareaid="info"onblur="saveInfo()"onmouseout="saveInfo()"
  30. onkeyup="setRows()">textarea> 
  31. div> 
  32. <scriptlanguagescriptlanguage="JavaScript"> 
  33. functionsaveInfo(){  
  34. vartext=document.getElementById("info").value;  
  35. //再用ajax向数据库中更新当前修改内容  
  36. }  
  37. functionsetCols(){  
  38. vartextarea=document.getElementById("info");  
  39. textarea.setAttribute("cols",Math.floor(textarea.clientWidth/7));  
  40. setRows();  
  41. }  
  42. functionsetRows(){  
  43. vartextarea=document.getElementById("info");  
  44. varcols=textarea.cols;  
  45. varstr=textarea.value;  
  46. strstr=str.replace(/\r\n?/,"\n");  
  47. varlines=2;  
  48. varchars=0;  
  49. for(i=0;i<str.length;i++){  
  50. varc=str.charAt(i);  
  51. chars++;  
  52. if(c=="\n"||chars==cols){  
  53. lines++;  
  54. chars=0;  
  55. }  
  56. }  
  57. textarea.setAttribute("rows",lines);  
  58. textarea.style.height=lines*12+"px";  
  59. }  
  60. functionsetDefault(){  
  61. vartextarea=document.getElementById("info");  
  62. textarea.value="单击这里进行编辑";  
  63. }  
  64. setDefault();  
  65. setCols();  
  66. script> 
  67. BODY> 
  68. HTML> 
  69.  

 [Ctrl+A全选注:如需引入外部Js需刷新才能执行]

思路:将textarea通过CSS样式设计成让用户感觉不像是textarea的样子,通过onblur、oumouseout等属性进行ajax保存用户数据。#p#

◆方法二:通过document.createElement的方法向页面增加input来实现。请运行下边代码: 

  1. <HTML> 
  2. <HEAD> 
  3. <TITLE>NewDocumentTITLE> 
  4. <METANAMEMETANAME="Generator"CONTENT="EditPlus"> 
  5. <METANAMEMETANAME="Author"CONTENT=""> 
  6. <METANAMEMETANAME="Keywords"CONTENT=""> 
  7. <METANAMEMETANAME="Description"CONTENT=""> 
  8. HEAD> 
  9. <BODY> 
  10. <dividdivid="gtest"> 
  11. 点击这里就可以编辑  
  12. div> 
  13. <SCRIPTLANGUAGESCRIPTLANGUAGE="JavaScript"> 

[Ctrl+A全选注:如需引入外部Js需刷新才能执行]

思路:

1、当用户鼠标经过可编辑区域时,用背景色等方式提醒用户该区域可编辑。

2、当用户鼠标点击该区域时,也就是onclick事件时,先将原来的内容清掉,将临时创建出来一个输入框和一个输入按扭。

3、用户修改完后,点击“保存”按扭时通过ajax向数据库中写入新的数据。

PS:第二个方法的代码还有点问题,有空再来调试一下。

【编辑推荐】

  1. DIV自适应高度写法简介
  2. DIV+CSS设计IE6、IE7、Firefox兼容性
  3. DIV布局规范中CSS类及id命名方式
  4. 探究DIV显示和隐藏用法
  5. 将XHTML+CSS页面转换为打印机页面技巧                                        

【责任编辑:程华权 TEL:(010)68476606】

责任编辑:佚名 来源: jb51.net
相关推荐

2016-08-23 17:47:51

虚拟化

2010-09-14 17:27:12

DIV CSS定位

2010-08-16 16:07:30

DIV垂直居中

2010-09-10 08:54:52

DIV居中

2010-10-09 15:12:00

JavaScript溢出

2010-08-16 10:18:53

DivCSS

2011-08-10 08:55:28

项目失败

2010-05-04 14:30:45

Oracle数据

2009-11-30 16:55:10

微软合作Novell

2010-07-21 10:25:50

Perl

2011-07-01 10:42:51

IIS解析漏洞

2022-02-24 08:00:00

API混合云数据

2013-09-09 11:14:30

2011-11-02 09:35:34

虚拟化虚拟化管理

2011-08-11 09:41:38

2010-04-01 09:34:06

Oracle函数

2009-08-14 15:07:00

C#编译过程

2020-12-29 07:56:23

JavaScript数据类型 primitive

2016-01-13 14:54:50

京东京东大脑

2010-07-15 14:25:06

Perl时间函数
点赞
收藏

51CTO技术栈公众号