2011-10-13 103 views
0

好的,我在一個web應用程序中使用CKEditor。我需要做的一件事是在文本區域設置文本。我一直在使用該行:CKEDITOR.instance [x] .setData不能在IE中工作

CKEDITOR.instances.setData(html); 

...其中html是一個包含HTML的變量。

這適用於Chrome瀏覽器的Chrome &,但在Internet Explorer或Safari瀏覽器中完全沒有問題。

任何人都可以提供一個見解,爲什麼,或建議解決?

非常感謝提前! :-)

+0

修正我的問題;這是否在Safari瀏覽器工作 - 只是不IE ... – icecreamsoop

+0

該代碼('CKEDITOR.instances.setData(html); ')應該在所有的瀏覽器失敗,因爲你沒有說明你想要使用的實例。一旦修復,它應該工作得一樣,除非你試圖使用一個不能被IE解析的錯誤的html字符串 – AlfonsoML

回答

0

確保從您傳入的字符串中刪除所有換行符setData().如果沒有,則會拋出異常,並顯示有關未終止字符串的消息。 CKEditor使用的換行符是UNIX樣式的\n(換句話說,不是DOS版本:\r\n)。

新行顯然拋出瞭解析器,使它認爲它是聲明的結尾。

另請注意,如果您撥打getData()以獲得該值,您只需再次設置,則CKEditor會將換行符和製表符重新放入其中。你需要再次剝離出來,如果你需要設置該值重新使用setData().我使用這樣的正則表達式模式剝離出來的換行符(和標籤只是爲了完整性):

[\n\t]+ 

還要確保如果您使用正則表達式去除它們,則需要確保模式匹配將匹配\n字符(在.NET中稱爲「單行」模式,但我不知道您在使用什麼)。