一些WYSIWYG编辑器如何保持粘贴文本的格式?作为一个例子,我将斜体红色文本从文本编辑器复制到WYSIWYG,它保留了文本的颜色和样式,这是怎么回事?我认为JavaScript只能访问剪贴板文本。这不是这种情况吗?如果是的话,那是什么?
答案 0 :(得分:3)
在复制/粘贴操作期间,源和目标之间存在内容类型协商。它有点像这样:
text/html
。text/html
并将其放入编辑器中。当我做X11 / Motif开发时,这几乎就是事情的发展(嘿!从我的草坪上扯下你让孩子们腐烂!)所以我猜大家都这样做了。
答案 1 :(得分:2)
JavaScript通常无法直接访问剪贴板。但是,过去几年发布的所有主要浏览器都有一个内置的WYSIWYG编辑工具,通过任何元素的contenteditable
属性/属性(这使得该元素可编辑)和designMode
属性文档对象(使整个文档可编辑)。
当用户编辑页面中的内容时,如果他们触发粘贴(通过键盘快捷键,例如 Ctrl + V 或 Shift + 插入或通过编辑或上下文菜单),浏览器自动处理整个粘贴过程,无需JavaScript的任何干预。此过程的一部分包括尽可能保留格式。
然而,这产生的HTML可能很糟糕,并且在浏览器之间变化很大。许多WYSIWYG编辑器(如TinyMCE和CKEditor)使用tricks拦截粘贴的内容,并在它到达编辑器的可编辑区域之前对其进行清理。
答案 2 :(得分:1)
您所看到的是富文本编辑器。这篇维基百科文章中有一些信息:http://en.wikipedia.org/wiki/Online_rich-text_editor
答案 3 :(得分:0)
我认为它复制了所选的DOM