首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript所见即所得编辑器和字体大小,我被难住了

Javascript所见即所得编辑器和字体大小,我被难住了
EN

Stack Overflow用户
提问于 2010-09-02 11:08:49
回答 4查看 2.2K关注 0票数 2

我正在创建一个Javascript WYSWYG编辑器(是的,我知道已经有一百万个,但没有一个能满足我的需求),我遇到了麻烦。

我的编辑器中只需要两个功能:

1)用户应该能够选择pts中指定的任何字体大小。2)用户应该能够在同一编辑器窗口中拥有不同大小的文本。

听起来很简单,但您会惊讶于这有多难。

我已经看过TinyMCE、NicEdit、FreeRichTextEditor、TinyEditor、openWYSIWYG、WYMeditor、jHtmlArea、uEditor、CLEditor、jQRTE、jQuery Simple WYSIWYG Editor和xinha,它们都没有这两个特性。

我能找到的唯一符合要求的编辑器是Google Docs、CKEditor和YUI Rich Text。Google Docs不是一个选项,CKEditor是850美元,对我的项目来说有点过分了,YUI富文本编辑器也太复杂了。我只想要一个非常简单的编辑器与这两个功能。

这是我的项目的一个很大的障碍。

无论找到什么解决方案,都必须是轻量级和免费的。例如,YUI文本编辑器可以工作,但依赖于YUI javascript库,该库太大,不容易拆分和剥离。

EN

回答 4

Stack Overflow用户

发布于 2010-09-02 11:59:37

我以前在基于IE的控件中这样做过。总而言之:

  1. 用户选择一段文本并在您的图形用户界面中选择不同的字体大小。Javascript中的
    1. 使用浏览器DOM获取当前文本选择对象。
    2. 创建新的跨度元素,根据需要设置

    样式字体大小属性(例如:12pt)。将跨度的内部文本设置为最初选择的文本。<代码>H210<代码>H111在相同的跨度中从新跨度中删除选定文本

当然,具体细节取决于您的目标浏览器。如果你需要支持很多浏览器,使用一个库(JQuery等)可能是个不错的选择。

如果我没记错的话,在IE中,你使用document.selectionselection.createRange()来获取当前选择。

range对象上还有一个用于删除选定文本的delete()collapse()。要插入跨度,可以使用insertBefore() / insertAfter()range.pasteHTML()

票数 0
EN

Stack Overflow用户

发布于 2010-09-03 05:17:58

仅当您需要特殊许可时,CKEditor的价格才为850美元。只要你能尊重GPL,LGPL或MPL,你就可以不用购买任何东西就可以使用它。http://ckeditor.com/license

票数 0
EN

Stack Overflow用户

发布于 2010-09-03 21:40:19

使用CLEditor,您可以编写一个简单的插件,将内置的字体弹出窗口替换为磅值(而不是字体大小1-7)。然后使用CLEditor .selectedText()和.execCommand()方法(以及'inserthtml‘命令)将当前选择替换为包含所选文本的跨度标记。这将跨浏览器工作,将是非常轻量级的,应该不会很难编写。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3623598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档