JavaScript实现Div可编辑的两种常见方案

作者:小括号时间:2026-10-22 09:12:50浏览:633

本文介绍在网页中实现即时内容编辑的两种JavaScript方案。第一种利用CSS样式隐藏Textarea外观,结合onblur等事件触发AJAX保存;第二种通过动态创建Input元素覆盖原内容,点击保存按钮提交数据。文中提供了相关代码示例及实现思路,并指出第二种方法可能存在待调试的问题。

实现网页即时编辑的功能目标

该功能旨在实现网页内容的即时编辑,从而提升页面的可用性与交互体验。


方案一:基于Textarea的伪装编辑

第一种方法是通过直接使用textarea标签来实现,具体代码运行如下:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML>  <HEAD>   <TITLE> New Document </TITLE>   <META NAME="Generator" CONTENT="EditPlus">   <META NAME="Author" CONTENT="">   <META NAME="Keywords" CONTENT="">   <META NAME="Description" CONTENT="">   <style type="text/css">     #info {           font-size: 12px;           overflow:hidden;           background-color: #ffffcc;           color: black;           padding-right:5px;           padding-left:5px;           font-family: courier;           width:100%;           letter-spacing:0;           line-height:12px;           border-style:none;         }   </style>  </HEAD>  <BODY>       <div id="sdf" style="width:400px;">       <textarea id="info" onblur="saveInfo()" onmouseout="saveInfo()" onkeyup="setRows()"><&#47textarea>       </div>             </BODY> </HTML> 

[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]


其核心思路是:利用CSS样式对textarea进行美化,使其外观不像是传统的文本框,并通过onblur、onmouseout等事件触发AJAX请求,以保存用户输入的数据。


方案二:基于动态Input的编辑实现

第二种方法则是利用document.createElement动态创建input元素并添加到页面中,具体代码运行如下:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE> <META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author" CONTENT=""> <META NAME="Keywords" CONTENT=""> <META NAME="Description" CONTENT=""> </HEAD> <BODY> <div id="gtest">     点击这里就可以编辑 </div>  </BODY> </HTML> 

[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]


实现思路如下:


1、当用户鼠标悬停在可编辑区域时,通过背景色变化等方式提示用户该区域支持编辑。


2、当用户点击该区域(触发onclick事件)时,先清空原有内容,然后动态生成一个输入框和一个保存按钮。


3、用户修改内容后,点击“保存”按钮,通过AJAX将新数据写入数据库。



注:第二种方法的代码尚存一些问题,后续需进一步调试完善。

作者最新文章