2009-04-15 57 views
8

或者有吗?从桌面软件开发人员的角度来看(或许与Web开发人员相反),丰富的Web应用程序平台(如Flash或Silverlight)看起来更适合用于为Web创作所见即所得文本编辑器。它们具有更复杂的输入/输出,数据表示等功能,并且它们通过浏览器和平台保持一致(当然,也许不是Silverlight和Moonlight,但至少Flash似乎是)。为什么Flash/Silverlight/Whatever中没有WYSIWYG富文本编辑器?

尽管如此,开发人员仍然喜欢使用Javascript/DOM/HTML/CSS以及它们所有的不兼容性,差异性,努力工作来解决每一个特定的问题,并使用大量的黑客技术来使这些技术达到目的原本应该能够做到的。

有一些普遍接受的论点,为什么你不应该使用Flash的网站,以及一个普遍接受的例外:嵌入式视频播放器。富文本编辑器如何不同? “一个闪光控制器存在于独立的沙箱中” - 所以,通常情况下,所见即所得的编辑器是一个所见即所得的编辑器; “闪光控制的文本不能被搜索引擎编入索引” - 无论如何,谁在乎索引编辑器中不断变化的未保存内容, “并非所有用户都可能安装了Flash” - 因此,并非所有用户都可以启用Javascript。

所以,这里的问题是:选择Javascript而不是Flash来实现所见即所得的编辑器有什么优势?否则选择的缺点是什么?

回答

3

一个JavaScript实现的RTE编辑过闪光的人的主要优点是:

  • 你不需要Flash播放器使用
  • 大多数人没有关闭JavaScript
  • 他们是一般更丰富,并具有更好的能力
  • 其他功能,如嵌入表, 图像和视频可以提供
  • 他们pr模块HTML输出准备好 作为web内容使用

您是否正在寻找自己编译这个编辑器?由于 一般来说,今天在javascript中可用于wysiwyg编辑器的选择相当不错。检查例如:fckeditortinymce。它们都非常令人印象深刻,并且每次发布都有所改进,并且可以应用于各种场景中

在大多数现代浏览器中,通过designmode/contenteditable div和iframe可以很好地支持构建这些事情。 Flex 3只有一个好的RichTextEditor,可以完成这项工作,但并不是那么棒。

+0

至于HTML,它们会生成 - 是否真的准备好了?用IE写的RTE的HTML输出是否总是与FF或Opera兼容? – Headcrab 2009-04-16 02:08:46

+0

因此,我的经验主要是使用FCKeditor,它的输出HTML能在所有当前浏览器上正确呈现。 FCKeditor声称即使在IE5.5上也能正常工作,我不会早于IE6做任何事情 – 2009-04-17 00:21:15

0

你发现在Javascript在网页上大部分主要的原因是需要用户的文本输入主要是经济,最网站(如博客,论坛,或者stackoverflow)都是用HTML/Javascript构建的。所以当你有能力的JS程序员构建99%的网站时,为什么要引入一个Flash程序员来构建其他1%。

但这并不意味着它们不存在!快速搜索一个更受欢迎的股票闪存网站显示3:

RTE1 | RTE2 | RTE3

而这只是在FlashDen。搜索FlashComponents.net或UltraShock.com,甚至只是谷歌它,我保证你有更多的销售或免费下载。

3

主要原因(我认为)是使用JavaScript(designMode)在浏览器中进行富HTML编辑的基础。这是由微软在IE 5.5中开始的(据我记忆),然后由Mozilla/Firefox,Opera,然后是Safari。浏览器会负责保存HTML DOM树,允许你浏览和修改它,等等。你可以在浏览器中创建一个基本的(完全延迟但仍然)的HTML wysiwyg,几乎没有JavaScript代码。然后你可以建立这样的功能(大多数现代javascript wysiwygs已经完成)。

在Flash/Silverlight开发者将不得不从头开始并实现所有这些东西。在微软/ Mozilla/Opera /等团队中,很难与这个领域进行竞争。

1

从技术上讲,没有什么说明你不能执行这个任务,因为大多数基本的RTF功能 - 视觉 - 已经到位。然而,有一些限制,例如自动图像/文本重排(例如,如果您指定图像并希望文字环绕它,则有些是数学+字符串+正则表达式操作的情况,并不容易)

您也可以使用除了渲染窗口本身(工具栏等,这将有助于缺少图标,并提供比JS提供的异常处理更有限的控制)之外的所有东西都可以使用Silverlight,因为这样可以利用WYSIWYG窗口真正的浏览器渲染引擎本身)和Silverlight的所有其他需求

我们正在研究如何在未来的版本中启用此功能,因此它不会充耳不闻

Scott Barnes/Rich Platforms产品经理/ Microsoft。

1

的JavaScript RTE的将成为网络标准,因为CONTENTEDITABLE是在HTML 5规范W3。 JavaScript RTE的当前方法是在文档的属性中将designMode设置为“on”。问题在于整个文档变得可编辑,因此您会发现大多数JavaScript RTE通过iFrame加载编辑器,从而允许iFrame的文档将designMode设置为“on”而不是父文档。

当前可用的JavaScript RTE的缺点是修改插入图像的用户界面(如果这对您很重要)是多么复杂。我个人并不关心很多内置的界面,但是据推测,如果你花费足够的时间阅读文档,你可以根据需要修改它。举个例子,看看他们演示中的TinyMCE的插入图像功能,然后启动WordPress并查看它们是如何修改它的。 (WordPress使用TinyMCE)。

我还没有运行任何测试,但它只是“感觉”像在actionscript textarea中输入似乎较慢。我遇到的另一个问题是添加图像并在文章中移动它们的能力。即使在Adobe AIR中,据说它使用WebKit渲染引擎,所以我尝试使用JavaScript来实现RTE,该工具在Safari浏览器(也使用WebKit)上正常工作,但通过AIR加载时,它的行为会有所不同。

总体而言,没有太多真正优秀的解决方案,这与contentEditable在大多数浏览器中尚未实现的标准以及目前可用的RTE的过于复杂的脚本有很大关系。

对于JavaScript RTE记者看到:

TinyMCE的,FCKEditor的(CKEditor的),YUI 2的编辑器,还有其他的一些,如果你想推出自己的,找对的execCommand(),这基本上是JavaScript教程方法修改所选元素或将元素插入到contentEditable区域中。

对于Flash ...我不知道,没有太多好的实现,甚至Flex文本编辑器也有点基础和限制。这两个平台的主要缺点是,修改和插入图像是多么容易,因为做粗体文本或斜体等基本的东西很简单。

1

一个JavaScript编辑器的主要优点是,JavaScript的提供了更多的可能性,用于创建先进的HTML元素(表,水平线,有序列表和表单元素)。 但是,大多数编辑器都是使用designmode和contenteditable iframe创建的。 这意味着代码的实际生成是由浏览器发生的,而不是由javascript发生。每个浏览器可能会生成不同的html,这可能是不需要的。

Flash编辑器功能较少,需要Flash,但可能是Flash网站的完美解决方案。 在javascript编辑器中的HTML差异可能非常讨厌,并且flash-html不支持的功能不应该在该JavaScript编辑器中。 Flash还会生成其他标记,这些标记在html中不会使用,例如:<textformat>标记仅用于flash-html/htmltext。

我有这个问题,我找不到编辑器生成所有可能的flash-html没有JavaScript编辑器的问题。 所以我创建了一个我自己,可以在:
http://www.flashcomponents.net/component/hcs-rich-text-editor.html
它生成flash-html,如果需要也有效(x)html在浏览器中没有任何区别。

简而言之,对于基于非Flash的网站,您可能需要一个JavaScript编辑器,因为它有更多的可能性。 对于Flash网站,您希望使用基于Flash的富文本编辑器生成带有特殊标签的flash-html代码,如<textformat>.