HTML在线编辑器原理
一、首先来看一个例子:[html]<DIV contenteditable="true" style="border:dashed blue 2px">Hello World!</DIV>这个DIV就变成可以编辑的了。类似的,SPAN,FONT等都可以有 contenteditable="true" 这个属性。再试试下面的:[html]<DIV contenteditable="true" style="border:dashed blue 2px">Hello World!<IMG src=/2013/0111/20130111011516236.jpg" /></DIV>我们就可以拉伸图片了。二、具体实现:1、需要两个页面,blank.html editor.html2、blank.html 作为 editor.html的一个内嵌Frame,作为编辑框。[html]<html><body topmargin="10" leftmargin="10" bgColor="#f6f6f6"><div id="RTC" contenteditable = true></div></body></html>3、editor.html 主要是一些Javascript,用来处理不同的命令。[html]<!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=""><SCRIPT LANGUAGE="JavaScript"><!--var contentHTML;function exeCommand(command, value){document.execCommand(command, false, value);}// 加粗function Black(){var obj = frames['ifRTC'].RTC;obj.focus();exeCommand('Bold', '');}// 斜体function Italic(){var obj = frames['ifRTC'].RTC;obj.focus();exeCommand('Italic', '');}// 下划线function UnderLine(){var obj = frames['ifRTC'].RTC;obj.focus();exeCommand('Underline', '');}// 向里缩进function Indent(){var obj = frames['ifRTC'].RTC;obj.focus();exeCommand('Indent', '');}// 向外缩进function Outdent(){var obj = frames['ifRTC'].RTC;obj.focus();exeCommand('Outdent', '');}// 无序列表function UnorderList(){var obj = frames['ifRTC'].RTC;obj.focus();exeCommand('InsertUnorderedList', '');}// 有序列表function OrderList(){var obj = frames['ifRTC'].RTC;obj.focus();exeCommand('InsertOrderedList', '');}// 插入图片function Image(){var obj = frames['ifRTC'].RTC;obj.focus();ImagePath = window.prompt('请输入图片路径:', '');exeCommand('InsertImage', ImagePath);}// 预览效果function Preview(){var htmlContent = frames['ifRTC'].RTC.innerHTML;var open = window.open('');open.document.write(htmlContent);}// 查看编辑框里的HTML源代码function Source(){var htmlContent = frames['ifRTC'].RTC.innerHTML;if (document.all.iframeDiv.style.display == 'block'){document.all.iframeDiv.style.display = 'none';document.all.htmlText.value = htmlContent;document.all.textDiv.style.display = 'block';document.all.htmlText.focus();document.all.Source.value='HTML';}else{document.all.iframeDiv.style.display = 'block';document.all.textDiv.style.display = 'none';frames['ifRTC'].RTC.innerHTML = document.all.htmlText.value;frames['ifRTC'].RTC.focus();document.all.Source.value=' 源代码 ';}}// 增加编辑框的高度function Add(){document.all.ifRTC.height = document.all.ifRTC.height*1 + 50;}//--></SCRIPT></HEAD><BODY><TABLE width="400"border="0"><TR><TD><input type="button" value="B" name="Black" onclick="Black()" /></TD><TD><input type="button" value="I" name="Italic" onclick="Italic()" /></TD><TD><input type="button" value="U" name="UnderLine" onclick="UnderLine()" /></TD><TD><input type="button" value="UL" name="UnorderList" onclick="UnorderList()" /></TD><TD><input type="button" value="OL" name="OrderList" onclick="OrderList()" /></TD><TD><补充:web前端 , HTML/CSS ,
上一个:浅谈2013版网易首页
下一个:以新浪微博为案例:网站交互设计初体验
- 更多html/css疑问解答:
- div+css中关于ie浏览器中非啊元素的:hover的实现问题,哪位大神指点下啊
- css jquery代码中为什么宽度这样设定.menu li ul 150px;.menu li ul a 110px;.menu li a中padding的20px
- css 属性选择器 ie6 不支持吗?
- 用css、jquery做的选项卡效果,有一个小疑问,请高手指点,代码如下:
- 介绍本学习css的书
- wordpress多个CSS样式怎么调用?
- 这个div 的css是如何编写的
- div+css中,div的右边框小于div的高度且居中,除了用背景图片,如何实现?
- 表格立体感用CSS怎么写 我要 具体代码 写仔细 分段的 谢谢 了 兄弟 还有 下拉列表框 立体感用CSS 怎么写
- CSS 在一个大的DIV里面,另一个DIV怎么居中并置底。
- dw中html文档为什么无法链接css文档
- 设计一个小例子说明DIV+CSS的优势(例子要解释并注释)。
- 我会html css目前正在学js,打算在大三的寒假找个实习,请问应该找哪方面的实习?
- css问题,跪求大大帮忙
- 请教网页设计高手,如下图的这种css代码怎么写?