在JSF页面中使用CKEditor时出现Javascript错误

时间:2014-11-30 13:13:31

标签: jsf-2 ckeditor primefaces-extensions

我尝试在JSF页面中使用CKEditor,如:

<pe:ckEditor id="editor" value="#{messagingController.messageContent}" width="600"/>

编辑器将出现在Internet Explorer中,但不会出现在Fire Fox或Chrome中
FireBug显示以下错误:

SyntaxError: An invalid or illegal string was specified

Chrome控制台向我显示以下错误:

Uncaught SyntaxError: Failed to set the 'innerHTML' property on 'Element': 
The provided markup is invalid XML, and therefore cannot be inserted into an XML document.

CKEDITOR.plugins.add.afterInit
(anonymous function)
k
CKEDITOR.scriptLoader.load
(anonymous function)
(anonymous function)
(anonymous function)
k
CKEDITOR.scriptLoader.load
CKEDITOR.resourceManager.load
i
(anonymous function)
k
(anonymous function)
(anonymous function)
(anonymous function)
k
l
o
(anonymous function)

这是一个错误还是什么?我可以用其他方式包含这个组件吗?

我还使用了最新的primefaces扩展lib:

<groupId>org.primefaces.extensions</groupId>
<artifactId>primefaces-extensions</artifactId>
<version>3.0.0</version>

2 个答案:

答案 0 :(得分:0)

问题在于我的网页的mime类型!当我将其从application/xhtml+xml更改为text/html时,问题就解决了。

答案 1 :(得分:0)

对正确答案的补充:

同样在iOS Safari中,可以出现此语法错误。指示是您的文档变量compatMode:"CSS1Compat"(以js为单位),然后ckEditor将在此函数x.innerHTML = "some string with html entities"处导致错误,因为使用错误的mime类型读取文档。

当文档有compatMode:"BackCompat"时,

ckEditor可以正常使用。这是由浏览器设置的,取决于内容类型resp。媒体类型。