如何开发HTML编辑器

在线的HTML内容编辑器为用户提供文本的样式控制,例如文字的颜色、字体大 小等。虽然现在网上有不少功能强大的编辑器(如:FCKEditor),但是在使用中 需要许多复杂的配置,而且代码往往比较“臃肿”。本文的目的就是介绍如何开 发一个HTML编辑器。应用本文介绍的方法,可以方便的开发出满足自己需求的, 代码相对比较精简的HTML编辑器。以下是一个应用本文方法开发的HTML编辑器, 实现了一些简单的功能:

开发方法如下:

1.添加一个可编辑的iframe

实现HTML编辑器的第1步就是在网页中放置一个可编辑的iframe用来输入文本 ,使iframe可编辑方法相当简单,只需要将iframe的designMode设置为on即可, 具体步骤如下:

var editor = document.getElementById("IFRAME的ID");

var editorDoc = editor.contentWindow.document;
var editorWindow = editor.contentWindow;

editorDoc.designMode = "on";

editorDoc.open();
editorDoc.write("<html><head></head><body  style='margin:0px; padding:  0px;'></body></html>");
editorDoc.close();

2.设置选中文本的样式

设置选中文本样式的方法最简单的方式就是使用document.execCommand,但是 execCommand功能比较局限,有时不能满足需求,例如:execCommand设置字体大 小只能是1-7,不能使用像素大小,而且如果你在点击工具栏按钮到调用 execCommand的过程中点击了其他的 DIV,iframe的选中内容会消失,这时调用 execCommand是无效的。因此本文介绍另一种方法,基本思路如下:

(1) 获取选中的HTML;

(2) 修改HTML的样式;

(3) 用修改后的HTML替换选中的HTML。

2.1 获取选中的HTML

在不同的浏览器中获取选中的HTML的方法是不同的,在IE中可以使用

var range = document.selection.createRange() 

在Firefox,Chrome中则使用

var range = window.getSelection().getRangeAt(0); 

2.2 替换选中的HTML

通过2.1的方法获取了表示选中内容的对象后,就可以调用其方法来替换掉选 中的内容。在不同的浏览器中替换选中的HTML的方法有所差异,在IE中可以只需 调用range.pasteHTML就行了,在Firefox,Chrome中则使用range.deleteContents 和 range.insertNode 两个方法来实现

时间: 2025-01-24 06:06:38

如何开发HTML编辑器的相关文章

开发公式编辑器显示数学符号

问题描述 开发公式编辑器显示数学符号 在开发类似于mathtype的公式编辑器时,点击控件显示数学符号的机理是什么样的? 解决方案 这个是通过ole实现的,mathtype其实是一个独立的程序,word是一个ole的容器,本质上说,在word中插入公式,和插入一个图片,或者插入一个excel文档是一样的,当你双击的时候,会调用作为ole server的mathtype 你可以用mfc向导中的ole server支持创建一个自己的ole服务器.

discuz二次开发调用编辑器发帖显示html何解?

discuz的开发文档很少,在二次开发的时候用discuz的编辑器,显示的是html代码,查看源码和各种莫名其妙的问题着实令人摸不着头脑.而discuz帖子存储在数据库的却是自定义的bbcode而不是正常的html代码.这也就导致直接调用discuz的编辑器发帖显示出来的帖子成了html源码. 网上找了很久也没找到相应的问题,最后通过数据库的字段对比才知道问题的所在. 1.问题所在 调用编辑器编辑的源码 顶顶顶顶顶<b><i>的顶顶顶顶顶</i></b>顶顶

ReSharper 6.0 Beta 3发布 由jetbrains开发的编辑器

ReSharper是一款由jetbrains开发的针对C#, VBhttp://www.aliyun.com/zixun/aggregation/13480.html">.NET, ASP.NET, XML, 和 XAML的编辑器.沿袭了jetbrains开发工具一贯的优良传统,ReSharper拥有高度智能的纠错,30多种高级代码重构功能,方便的单元测试 工具,快速导航.检索,以及一键格式化代码,自动代码生成和模板功能等很多特性. ReSharper 6.0 Beta发行说明: We'r

EDI —— Go 语言开发的基于 Web 的编辑器

EDI 详细介绍EDI 是一个用 Go 语言开发的编辑器,它并没有尝试成为一个 IDE ,是作为和机器上其他工具的一个非常好的桥梁.提供快捷方式用来快速打开和编辑文件.该编辑器直接在浏览器上运行,要求你的浏览器支持 WebSocket . 目前提供了 Linux 和 OS X 的预编译版本:Linux x86-64 and Mac OS. 常用快捷键: E file_name 打开文件(允许使用相对路径) W 保存当前编辑文件 W file_name 保存当前编辑内容到新的文件 file_nam

Eclipse平台入门:开发环境与实例

试验一下 Java 开发环境,我们将创建并运行一个"Hello, world"应用程序.使用 Java 透视图,右键单击"Hello"项目,选择 New=>Class,如图 2 所示.在随后出现的对话框中,键入"Hello"作为类名称.在"Which method stubs would you like to create?"下面,选中"public static void main(String[] arg

Eclipse平台入门之二:开发环境与实例

接着上一篇文章Eclipse平台入门之一:什么是Eclipse,我们将开始介绍Java 开发环境(JDE). 为试验一下 Java 开发环境,我们将创建并运行一个"Hello, world"应用程序.使用 Java 透视图,右键单击"Hello"项目,选择 New=>Class,如图 2 所示.在随后出现的对话框中,键入"Hello"作为类名称.在"Which method stubs would you like to crea

网站设计:七款给Web开发者的编辑器

开发者的编辑器-"> [核心提示] 推荐五款 Markdown 编辑器和两款开发编辑器,感觉没啥好工具的尝试下吧. 编辑注记:本文所选工具来自 7 Awesome Markdown Editors for Web Developers 和 5 Cross-Platform Editors for Web Developers 最近看到两篇文章分别介绍了几款 Web 开发的编辑器和 Markdown 编辑器,尤其是有些跨平台的新工具,值得推荐(好吧,我承认主要是为 Ubuntu/Linux

白话阿里巴巴Java开发手册(编程规约)

最近,阿里巴巴发布了<阿里巴巴Java开发手册>,总结了阿里人多年一线实战中积累的研发流程规范,这些流程规范在一定程度上能够保证最终的项目交付质量,通过限制开发人员的编程风格.实现方式来避免研发人员在实践中容易犯的错误,同样的问题大家使用同样的模式解决,便于后期维护和扩展,确保最终在大规模协作的项目中达成既定目标. 无独有偶,笔者去年在公司里负责升级和制定研发流程.设计模板.设计标准.代码标准等规范,并在实际工作中进行了应用和推广,收效颇丰,也总结了适合支付平台的技术规范,由于阿里巴巴Java

websocket即时通讯java SpringMVC mybatis 后台框架 集成代码生成器开发利器

A代码编辑器,在线模版编辑,仿开发工具编辑器,pdf在线预览,文件转换编码B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,快速开发利器)+快速表单构建器 freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本,处理类,service等完整模块C 集成阿里巴巴数据库连接池druid  数据库连接池  阿里巴巴的 druid.Druid在监控.可扩展性.稳定性和性能方面都有明显的优势D 集成安全权限框架shiro  Shiro 是一个用 Java 语言