【KindEditor】文章内容含有<p>标签时,kindeditor无法正常加载??

Bisle 发布于 2011/09/27 20:40
阅读 4K+
收藏 0
具体的用例是编辑某篇文章。
正常情况下,在kindeditor创建完毕后可以用KE.html(id, '${topic.content}');来使之加载原来的文章,但我在实际应用中却遇到了这样一个问题:当文章内容中含有<p>段落标签时,kindeditor就无法正常加载。
直接访问数据库查看内容后发现,只要不出现<p>标签,无论是视频、图片还是文字,kindeditor都可以正常加载。但只要出现<p>,kindeditor应该出现的位置就是一片空白。尴尬的是,kindeditor默认生成的文章都会出现大量的段落标签,无法避免。。我不知道这是kindeditor的bug还是我的程序有问题?坐等高手解答!
注:
1、已经排除了css的影响。
2、数据库中的内容可以正常显示在页面上,说明文章内容本身并没有问题,但这样无法实现编辑文章的目的。
3、kindeditor版本:3.5.5
加载中
0
红薯
红薯

用 KE.html(id,'$xxxx') 不行吧,如果内容中包含一些例如单引号的字符就会导致这行代码无法执行。

初始化内容可以直接在 textarea 标签中设定,如

<textarea id='xxxx'>${topic.content}</textarea>

但要对内容进行转移,将 < 替换成 &lt; 以及 > 替换成 &gt;

0
Bisle
Bisle

引用来自“红薯”的答案

用 KE.html(id,'$xxxx') 不行吧,如果内容中包含一些例如单引号的字符就会导致这行代码无法执行。

初始化内容可以直接在 textarea 标签中设定,如

<textarea id='xxxx'>${topic.content}</textarea>

但要对内容进行转移,将 < 替换成 &lt; 以及 > 替换成 &gt;

谢谢红薯,我这就去试试转义。。

另外,直接在textarea里面设定我也试过,但没做转义,效果跟KE.html(id,$xxxx')是一样的。关键是只要没有<p>,js设定和标签设定都一切正常;<p>一出现,无论是用js设定还是标签设定都不行了。难道只有<p>要转义才行?

0
Bisle
Bisle

引用来自“红薯”的答案

用 KE.html(id,'$xxxx') 不行吧,如果内容中包含一些例如单引号的字符就会导致这行代码无法执行。

初始化内容可以直接在 textarea 标签中设定,如

<textarea id='xxxx'>${topic.content}</textarea>

但要对内容进行转移,将 < 替换成 &lt; 以及 > 替换成 &gt;

红薯大,转义我刚才也试了,还是没能解决。。oschina有类似的功能么?能否开源一下~
0
红薯
红薯

就算开源给你了,你一样不行:),下面是oschina的转义代码

/**
 * 格式化HTML文本
 * @param content
 * @return
 */
public static String rhtml(String content) {
	if(StringUtils.isBlank(content))
		return content;
	String html = content;
	/*
	html = StringUtils.replace(html, "&", "&amp;");
	html = StringUtils.replace(html, "'", "&apos;");
	html = StringUtils.replace(html, "\"", "&quot;");
	*/
	html = StringUtils.replace(html, "&", "&amp;");
	html = StringUtils.replace(html, "<", "&lt;");
	html = StringUtils.replace(html, ">", "&gt;");
	return html;
}
0
Bisle
Bisle

引用来自“红薯”的答案

就算开源给你了,你一样不行:),下面是oschina的转义代码

/**
 * 格式化HTML文本
 * @param content
 * @return
 */
public static String rhtml(String content) {
	if(StringUtils.isBlank(content))
		return content;
	String html = content;
	/*
	html = StringUtils.replace(html, "&", "&amp;");
	html = StringUtils.replace(html, "'", "&apos;");
	html = StringUtils.replace(html, "\"", "&quot;");
	*/
	html = StringUtils.replace(html, "&", "&amp;");
	html = StringUtils.replace(html, "<", "&lt;");
	html = StringUtils.replace(html, ">", "&gt;");
	return html;
}
谢谢!但果然还是不行。。唉。。到底为什么呢。。
0
Bisle
Bisle

引用来自“红薯”的答案

用 KE.html(id,'$xxxx') 不行吧,如果内容中包含一些例如单引号的字符就会导致这行代码无法执行。

初始化内容可以直接在 textarea 标签中设定,如

<textarea id='xxxx'>${topic.content}</textarea>

但要对内容进行转移,将 < 替换成 &lt; 以及 > 替换成 &gt;

报告红薯,问题解决。就是不能使用KE.html(id,'${****}');  使用直接标签赋值就ok了。可也奇怪,同样的代码,今天通了,可昨天为什么就不行呢。。。我记得清空缓存了呀~希望明天不要再出毛病。。。

不过无论如何,问题是解决了,谢谢红薯!

0
领悟书生

引用来自“Bisle”的评论

引用来自“红薯”的答案

用 KE.html(id,'$xxxx') 不行吧,如果内容中包含一些例如单引号的字符就会导致这行代码无法执行。

初始化内容可以直接在 textarea 标签中设定,如

<textarea id='xxxx'>${topic.content}</textarea>

但要对内容进行转移,将 < 替换成 &lt; 以及 > 替换成 &gt;

报告红薯,问题解决。就是不能使用KE.html(id,'${****}');  使用直接标签赋值就ok了。可也奇怪,同样的代码,今天通了,可昨天为什么就不行呢。。。我记得清空缓存了呀~希望明天不要再出毛病。。。

不过无论如何,问题是解决了,谢谢红薯!

0
领悟书生

引用来自“Bisle”的评论

引用来自“红薯”的答案

就算开源给你了,你一样不行:),下面是oschina的转义代码

/**
 * 格式化HTML文本
 * @param content
 * @return
 */
public static String rhtml(String content) {
	if(StringUtils.isBlank(content))
		return content;
	String html = content;
	/*
	html = StringUtils.replace(html, "&", "&amp;");
	html = StringUtils.replace(html, "'", "&apos;");
	html = StringUtils.replace(html, "\"", "&quot;");
	*/
	html = StringUtils.replace(html, "&", "&amp;");
	html = StringUtils.replace(html, "<", "&lt;");
	html = StringUtils.replace(html, ">", "&gt;");
	return html;
}
谢谢!但果然还是不行。。唉。。到底为什么呢。。
这样的评论是怎么实现的啊
返回顶部
顶部