在线编辑器实现原理

上传人:kms****20 文档编号:40595342 上传时间:2018-05-26 格式:DOC 页数:6 大小:37.50KB
返回 下载 相关 举报
在线编辑器实现原理_第1页
第1页 / 共6页
在线编辑器实现原理_第2页
第2页 / 共6页
在线编辑器实现原理_第3页
第3页 / 共6页
在线编辑器实现原理_第4页
第4页 / 共6页
在线编辑器实现原理_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《在线编辑器实现原理》由会员分享,可在线阅读,更多相关《在线编辑器实现原理(6页珍藏版)》请在金锄头文库上搜索。

1、在线编辑器原理在线编辑器原理这是一个以前写的帖子. 关于研究在线编辑器原理的文章. 很多人都用过这样 或那样的在线编辑器.比较有名的国产在线编辑器有 ewebsoft ,但为什么能实 现在线编辑呢? 首先需要 ie 的支持,在 ie 5.5 以后就有一个编辑状态. 就是利 用这个编辑状态,然后用 javascript 来控制 在线编辑的. 下面给出一个简短的 例子:首先要有一个编辑框.这个编辑框其实就是一个 可编辑状态的 网页. 我们这里 用 iframe 来建立编辑框并且在 加上 javascript 代码来指定 HtmlEdit 有编辑功能:function document.onread

2、ystatechange() HtmlEdit.document.designMode=“On“; HtmlEdit.document.body.innerHTML 这句可以获得 HtmEdit 里面的 html 代码. 一般的我们会用这样的 javascript 将 iframe 里的内容传递给一 个 textarea 然后提交给服务器处理.function getIframeData() document.form1.test.value=HtmlEdit.document.body.innerHTML; function sentIframeData() HtmlEdit.documen

3、t.body.innerHTML=document.form1.test.value; var sel = HtmlEdit.document.selection.createRange(); 而这一句可以 获得选取的焦点:下面我就演示一个完成的例子. 一个拥有加粗功能的在线编辑器,有兴趣的朋友 可以在此基础上完成其他功能!function getIframeData() document.form1.test.value=HtmlEdit.document.body.innerHTML; function sentIframeData() HtmlEdit.document.body.inn

4、erHTML=document.form1.test.value; function doB() HtmlEdit.focus(); var sel = HtmlEdit.document.selection.createRange(); insertHTML(“+sel.text+“); function insertHTML(html) if (HtmlEdit.document.selection.type.toLowerCase() != “none“) HtmlEdit.document.selection.clear() ; HtmlEdit.document.selection.

5、createRange().pasteHTML(html) ; function document.onreadystatechange() HtmlEdit.document.designMode=“On“; textarea“ onClick=“getIframeData()“ iframe“ onClick=“sentIframeData()“HTML 在线编辑器不需要懂得使用 Dreamweaver,会用 Word 就会使用此编 辑器,在文章系统或者是新闻系统需要文字编辑的 web 程序中非常实用。 但是如何将 html 编辑器嵌入到 web 页中和怎么取得里面的数据呢?! 首先我们假

6、定我们所要调用得 HTML 在线编辑器放在一个单独得页面中,文件 名是 gledit.htm 上传图片的前台页面: http:/ HTML 在线编辑器有两种基本调用方法 一、使用 object 调用(http:/ 1、怎么在 web 页中嵌入 html 编辑器: 我们在需要嵌入得位置加入以下 html 代码: 其中 object 标签里面得 data 后面接得数据就是我们所要调用得在线编辑器页 得路径,id 就是我们调用 object 得 id,后面取编辑器中得数据时就要用到这 个 id。Width 和 height 就是编辑器得高度和宽度了。 2、怎么取得 html 编辑器中的数据:所有需要

7、提交的内容我们都是放在一个表 单里面,同样利用 object 调用的编辑器也放在这个表单里面,同时我们可以设 置一个隐藏的文本区域(或)用以在提交的时候临时保存 html 在线编辑器的数据,因 为在 asp 或者 jsp,php 中不能直接获取表单中的 object 的内容,所以我们 必须借助隐藏文本区域来获取数据。我们在表单提交的同时将 object 里面的内 容复制到隐藏的文本区域中。详细代码如下:function CheckForm() document.form1.content.value=document.form1.doc_html.value; 这样在后台处理的页面中我们就可以

8、直接通过取隐藏区域 content 的数据来获 取 html 在线编辑器的数据。 3、怎么在文本编辑器中加入上传本机图片到 html 在线编辑器中:首先我们使 得在点击插入图片的按钮时弹出一个上传图片的窗口,我们利用自己写的程序 来实现上传本机图片到服务器上,然后我们需要记录图片的路径,然后通过 html 在线编辑器的值中加入显示图片的 html 标签。详细说明及代码如下: 在编辑器中我们在插入图片的按钮上加入事件 onclick=“window.open(img_upload.asp,img_upload,width=481 height=190)“在img_upload.asp中我们将提交

9、的图片上传到服务器制定目录然后记录图片路径var src=; opener.form1. doc_html.value +=“; window.close();这样就实现了简单的将上传的图片插入到编辑器中。 4、怎么在编辑修改文章的时候调用 HTML 在线编辑器来修改数据:当我们把 在添加的时候将 HTML 在线编辑器来修改数据提交到数据库后我们还需要能将 数据库的内容用 HTML 在线编辑器来修改数据。首先我们在表单中加入一个隐 藏区域来放置数据库中的内容,例如,要注意这里我们用隐藏的 textarea 而 不能用隐藏的 input,因为数据里面可能包含了回车换行,所以如果我们使用 “很可能

10、因为 有换行而出现 HTML 错误(value=后面接的数据必须保证是在一行,否则出 错)。然后按照前面介绍的方法使用 object 调用 HTML 在线编辑器,方法和 代码同上,现在我们要做的其实就是提交时候的逆过程,我们只要将隐藏文本 区域的内容复制到 HTML 在线编辑器就可以了,在这里我们在 body 里面加上 ,这样在页面装载完 的时候就可以将数据库中的内容放入 HTML 在线编辑器中编辑了,提交过程和 上面介绍的一样,在此就不赘述了。二、使用 iframe 调用 (http:/ ) 1、 怎么在 web 页中嵌入:我们在需要嵌入得位置加入以下 html 代码: 其中“src=“后面

11、接得数据就是我们所要调用 得在线编辑器页得路径,id 就是我们调用 IFRAME 得 id,Width 和 height 就 是编辑器得高度和宽度了。 2、 怎么取得 html 编辑器中的数据:同样所有需要提交的内容我们都是放在 一个表单里面,同时我们可以设置一个隐藏的文本区域(或)用以在提交的时候临时保存 html 在线 编辑器的数据,我们借助隐藏文本区域来获取数据。我们在表单提交的同时将 object 里面的内容复制到隐藏的文本区域中。详细代码如下: function subchk(cmd) document.form1.content.value= window.content_html

12、.getHTML(); 在后台处理的页面中我们就可以直接通过取隐藏区域 content 的数据来获取 html 在线编辑器的数据。 2、怎么取得 html 编辑器中的数据:所有需要提交的内容我们都是放在一个表 单里面,同样利用 object 调用的编辑器也放在这个表单里面,同时我们可以设 置一个隐藏的文本区域(或)用以在提交的时候临时保存 html 在线编辑器的数据,因 为在 asp 或者 jsp,php 中不能直接获取表单中的 object 的内容,所以我们 必须借助隐藏文本区域来获取数据。我们在表单提交的同时将 object 里面的内 容复制到隐藏的文本区域中。详细代码如下:functio

13、n CheckForm() document.form1.content.value=document.form1.doc_html.value; 这样在后台处理的页面中我们就可以直接通过取隐藏区域 content 的数据来获 取 html 在线编辑器的数据。 3、怎么在文本编辑器中加入上传本机图片到 html 在线编辑器中:首先我们使 得在点击插入图片的按钮时弹出一个上传图片的窗口,我们利用自己写的程序 来实现上传本机图片到服务器上,然后我们需要记录图片的路径,然后通过在 调用 html 在线编辑器的 web 页中写一个函数在光标的位置插入显示图片的 html 标签。详细说明及代码如下: 在

14、编辑器中我们在插入图片的按钮上加入事件 onclick=“window.open(img_upload.asp,img_upload,width=481 height=190)“在调用编辑器的页面中我们定义好插入 html 代码到编辑器 的函数function insertHtml(HtmlCode) var win=window.content_html.idEditbox.document;/其中编辑区域是 gledit.htm 中的一个 iframe,id 是 idEditbox window.content_html.idEditbox.focus();/是编辑器获得焦点,防止代码 插

15、入在编辑器外地方 win.selection.createRange().pasteHTML(HtmlCode)/在光标的位置插 入 html 代码 在处理上传图片的文件中,我们调用父窗口的函数插入 html 代码var src=; var htmlcodes; htmlcodes = “ align= border= hspace= vspace=“; opener.insertHtml(htmlcodes) window.close();这样就实现了简单的将上传的图片插入到编辑器中。 4、 怎么在编辑修改文章的时候调用 HTML 在线编辑器来修改数据:当我们把 在添加的时候将 HTML 在线编辑器来修改数据提交到数据库后我们还需要能将 数据库的内容用 HTML 在线编辑器来修改数据。首先我们在表单中加入一个隐 藏区域来放置数据库中的内容,例如,在这里我们在调用编辑器的页面中的 body 标签里面加上其中 inserthtml()就是我们定义好插入 html 代码到编辑器的函数(具体参考插入 图片的代码)。这样在页面装载完的时候就可以将数据库中的内容放入 HTML 在线编辑器中编辑了,提交过程和上面介绍的一样,在此就不赘述了。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号