好的,我在Web应用程序中使用CKEditor。我需要做的一件事是在文本区域中设置文本。我一直在使用这条线:
CKEDITOR.instances.setData(html);
...其中html
是包含HTML的变量。
这适用于Chrome& Firefox,但在Internet Explorer或Safari中根本不存在。
任何人都可以提供有关原因或建议解决方法的见解吗?
非常感谢提前! : - )
答案 0 :(得分:0)
确保从传入的字符串中删除所有换行符setData().
如果不这样做,则抛出异常,并显示有关未终止字符串的消息。 CKEditor
使用的换行符是\n
的UNIX样式(换句话说,不是DOS版本:\r\n
)。
新行显然抛弃了解析器,使它认为它是声明的结尾。
另请注意,如果您再次拨打getData()
来获取该值,CKEditor
会将换行符和标签放回去。如果你需要使用setData().
设置该值,则需要再次将它们剥离。我使用这样的正则表达式去除换行符(以及标签只是为了完整性):
[\n\t]+
另外请确保如果使用正则表达式去除它们,则需要确保模式匹配与\n
字符匹配(在.NET中称为“单行”模式,但我不知道不知道你在用什么。