2009-04-15 106 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>.