在线编辑器的实现原理(兼容IE和FireFox)


在线编辑器在我们日常的项目开发中非常有用(如新闻系统),它可以方便地实现文章的在线编辑,省掉了FrontPage等工具。那么是怎样实现浏览器在线编辑功能的呢? 首先需要IE的支持,在IE5.5以后就有一个编辑状态. 就是利用这个编辑状态,然后用javascript来控制在线编辑的。
首先要有一个编辑框,这个编辑框其实就是一个可编辑状态的网页, 我们用iframe来建立编辑框。
<IFRAME id=“HtmlEdit” style="WIDTH: 100%; HEIGHT: 296px" marginWidth=“0” marginHeight=“0”></IFRAME>
并且在加上javascript代码来指定HtmlEdit有编辑功能(下面提供完整的原代码):

复制代码 代码如下:

<script language="javascript">
var editor;
editor = document.getElementById("HtmlEdit").contentWindow;

//只需键入以下设定,iframe立刻变成编辑器。
editor.document.designMode = 'On';
editor.document.contentEditable = true;

//但是IE与FireFox有点不同,为了兼容FireFox,所以必须创建一个新的document。
editor.document.open();
editor.document.writeln('<html><body></body></html>');
editor.document.close();

//字体特效 - 加粗方法一
function addBold()
{
editor.focus();
//所有字体特效只是使用execComman()就能完成。
editor.document.execCommand("Bold", false, null);
}
//字体特效 - 加粗方法二
function addBold()
{
editor.focus();
//获得选取的焦点
var sel = editor.document.selection.createRange();
insertHTML("<b>"+sel.text+"</b>");
}
function insertHTML(html)
{
if (editor.document.selection.type.toLowerCase() != "none")
{
editor.document.selection.clear() ;
}
editor.document.selection.createRange().pasteHTML(html) ;
}

</script>



相关阅读:
ORACLE 10G使用Exp程序导出整个数据库
web前端开发经验浅谈:分享看过的书籍和成长过程
HTML5与数据库API核心规范
div+css与xhtml+css是什么意思?
Javascript中的浅拷贝和深拷贝
语义化的网页 XHTML语义化标记
js单行消息滚动代码,可添加无数个
关于Mozilla浏览器不支持innerText的解决办法
Linux下Apache与Tomcat整合的简单方法
img标签中alt和title属性的正确使用
JavaScript 文本域字体大小选择功能
fleaphp rolesNameField bug解决方法
FreeBSD网站平台建设全过程 第五步
php对gzip文件或者字符串解压实例参考
快速导航

Copyright © 2016 phpStudy |