28,390
社区成员
发帖
与我相关
我的任务
分享
ok,在线编辑器的前身
<input type="hidden" name="xxx" id="xxx" title="定义一个隐藏域,用以表单数据提交" />
<div id="editor" style="border:1px solid #CCCCCC;" title="定义一个 div,用以编辑 html 代码">
here is your code
</div>
<script>
var edt = document.getElementById('editor'); // 引用用以编辑 html 的 div
var edtor = document.getElementById('xxx'); // 引用隐藏域
edt.onclick = function(){ // 定义编辑域的点击事件
if ((this.childNodes[0].nodeName!='TEXTAREA')||(this.childNodes.length>1)){ // 如果编辑域的子节点多于一个或者第一个子节点不是文本域时
var e = document.createElement('textarea'); // 创建一个文本域
e.style.width = this.offsetWidth; // 文本域宽度定义
e.value = edtor.value = this.innerHTML; // 保存现有的 html 内容到文本域和隐藏域中
this.innerHTML = ''; // 清空编辑域的节点
this.appendChild(e); // 将文本域追加到编辑域中
e.focus(); // 使文本域获得焦点
e.onblur = function(){ // 定义文本域失去焦点时的事件
this.parentNode.innerHTML = edtor.value = this.value; // 编辑域恢复到文本域的最后值,并将值传递给隐藏域
}
}
}
</script>
<div contentEditable="true"></div>
ok,在线编辑器的前身
<input type="hidden" name="xxx" id="xxx" />
<div id="editor" style="border:1px solid #CCCCCC;">
here is your code
</div>
<script>
var edt = document.getElementById('editor');
var edtor = document.getElementById('xxx');
edt.onclick = function(){
if ((this.childNodes[0].nodeName!='TEXTAREA')||(this.childNodes.length>1)){
var e = document.createElement('textarea');
e.style.width = this.offsetWidth;
e.value = edtor.value = this.innerHTML;
this.innerHTML = '';
this.appendChild(e);
e.focus();
e.onblur = function(){
this.parentNode.innerHTML = edtor.value = this.value;
}
}
}
</script>