由于项目需要,最近做了个自制的编辑器,其实,回头来看编辑器的实现觉得也蛮容易的吗。不过话说回来,如果做成现在的(javaeye用的这个有点像fckeditor),那还得需要很大很大的很复杂很复杂的编码控制。这里小介绍一下,如果在编辑器中触发事件:
main.html
<html>
<body>
<iframe id="editor" name="editor"></iframe>
</body>
</html>
<script type="text/javascript">
var _frame = document.getElementById("editor");
var _window = _frame.contentWindow;
_window.document.designMode="on";//设置为设计模式,就可以填写内容了
_window.document.canHaveHTML=true;/.可以包含HTML
initEditor();
function initEditor(){
//可以写一堆事件处理
_window.document.onmouseup= function(){
}
_window.document.click= function(){
}
}
</script>
这应该很简单吧,但关键是实现下面这样的功能,类似Gmail中的连接功能:
其实看起来挺简单的,但是设置起来看相当不简单,因为在编辑模式下,你没法触发click事件。但还是有方法解决的。虽然它没有click事件,但是他是一个链接,链接的实质是<a>标签,怎么加上A标签呢?先一步步来:
1.获取选择对象:
var textrange = _window.document.selection.createRange();//这样在编辑区内,选中文本,就产生对象了。
2.怎么加上A,
1)TextRange 对象有pasteHTML方法,可以加上,
2)TextRange 的execCommand(), CreateLink命令。
怎么加事件呢,其实本质还是一样,本身点击右事件,只是不触发了而已,但是当你点击A链接以后,获取
var event = _window.event;
alert(event.srcElement.TagName);
这样可以获取事件源,然后判断如果TagName是A的话,就弹出层。就可以了。
写字太难受,略写了一下,如果需要详细,下次发源码。
- 大小: 5.3 KB
分享到:
相关推荐
在这个例子中,`min.js`可能是一个压缩过的JavaScript库,用于实现编辑器的功能,比如TinyMCE或CKEditor等。这些编辑器通常会提供API来处理高度自适应,但如果你选择手动处理,上面的代码提供了一个基础的实现方式。...
在这个编辑器中,SVG被用作基本元素,用户可以通过直观的界面直接在Web上进行SVG组件的布局和配置,无需具备深厚的编程基础。 Web组态编辑器通常是一个图形化工具,允许用户通过拖拽和配置预定义的组件来创建交互式...
2. **富文本编辑**:编辑器通过创建一个隐藏的iframe或者div元素,并设置其contentEditable属性为true,使得用户可以直接在浏览器内进行文本编辑。编辑的内容会被实时转换成HTML格式,以便于在网络上传输和存储。 3...
HTML5的跨iframe拖拽功能在移动端页面设计中是一个重要的技术点,它允许用户在不同的iframe之间自由地拖放元素,提升用户体验,特别是在构建可编辑的页面设计器时。本篇文章将详细探讨如何实现这一功能,并结合给定...
用户在编辑器中输入的文字会实时转化为HTML代码,这些代码随后可以被保存到服务器或者直接在页面上展示。 富文本编辑器的实现通常分为两种主要类型:基于iframe的编辑器和基于div的编辑器。基于iframe的编辑器会在...
在网页开发中,jQuery是一个非常流行的JavaScript库,它简化了DOM操作、事件处理、动画制作等任务。而iframe(内联框架)...在实际应用中,可以根据需求扩展这些基本功能,例如添加错误处理、实现iframe内容的交互等。
3. **事件监听**:通过监听`keyup`、`mouseup`等事件,可以获取用户在编辑器中的实时操作,比如输入的文字、选中的文本等。这可以帮助实现自定义功能,如自动缩进、高亮代码块等。 4. **DOM操作**:富文本编辑器...
新浪文本编辑器,很不错的编辑器,做网站有很多地方都可能会用到 1,要下载文本编辑器。请点击新浪文本编辑器下载, 2,解压后,把文件夹中Edit文件夹夹复制到网站的根目录下, 3,在界面上引用编辑器 <iframe ID=...
4. 监听事件:可以通过监听编辑器的事件,如“change”事件,来获取用户编辑的内容,或者进行其他业务处理。 四、关键配置项与方法 1. toolbar:定义编辑器工具栏,可以自定义包含的按钮,如['bold', 'italic', '...
3. **JavaScript初始化**:编辑器的初始化代码通常在JavaScript中完成,它负责加载编辑器库,绑定事件,以及设置初始配置。例如,使用CKEditor时,可能的初始化代码如下: ```javascript CKEDITOR.replace('editor...
### 彻底解决ASP中KindEditor编辑器无法获得提交的数据问题 ...通过以上步骤,可以在ASP环境中成功地使用KindEditor编辑器,并且能够正确地获取编辑器中提交的数据,从而解决无法获取提交数据的问题。
**JSP在线编辑器**是一种基于JavaServer Pages (JSP)技术...总的来说,JSP在线编辑器提供了一种便捷的方式,让开发者可以在Web环境中直接编辑和预览JSP代码,但使用时需注意安全性,并结合其他专业工具以提高开发效率。
1. **JavaScript基础**:理解这个编辑器的实现需要扎实的JavaScript基础,包括DOM操作(Document Object Model),事件处理,以及对BOM(Browser Object Model)的熟悉。JavaScript用于构建交互式用户界面,创建和...
在iframe中的页面,你可以监听`message`事件来接收这些数据: ```javascript window.addEventListener('message', function(event) { if (event.origin !== 'http://yourdomain.com') return; // 解析并处理...
在这个主题中,我们将深入探讨两种常见的实现方式:基于`textarea`的非所见即所得(WYSIWYG)编辑器和基于`iframe`的所见即所得编辑器。 1. **基于`textarea`的非所见即所得编辑器** - `textarea`是HTML中的一个...
在HTML在线编辑器中,DHTML起到了关键作用,因为它能够动态地修改页面元素,满足在线编辑的需求。 JScript是微软开发的一种脚本语言,与JavaScript非常相似,主要用于浏览器环境中的客户端脚本编写。在HTML在线编辑...
- `editor.js`则是编辑器的核心逻辑,包括事件处理、功能实现和可能的初始化脚本。 综上所述,富文本编辑器是Web开发中的重要组成部分,提供了便捷的内容创作环境。开发者可以利用开源库快速构建自己的富文本编辑...
百度ueditor是一个很好的编辑器,但是由于安全机制,不允许带iframe的内容提交(会自动过滤)。经过小编的多处的修改代码后,现在这个编辑器也支持使用iframe了!有需要的朋友可以下载来用!方便,有效!
例如,当用户在编辑器中选中文本并应用某种格式化操作时(如加粗、斜体),实际上是通过JavaScript调用DOM API对选中的文本进行修改。DHTML技术提供了强大的DOM操作能力,从而使得HTML在线编辑器能够实现复杂的功能...
一种常见的实现方式是使用IFrame,因为IFrame可以让编辑器的内容独立于页面其他部分,避免样式冲突。同时,我们可以利用`contentEditable`属性,将其设置在IFrame的body上,使用户可以直接在浏览器内编辑内容。 ...