主题: KE.util.insertHtml() 方法bug
作者: 多多, 发布日期: 2011-08-13 14:36:46, 浏览数: 3558
操作系统: Windows XP或Windows 7或Linux

浏览器: IE6或IE9或Firefox3

KindEditor版本: 3.5.5

BUG再现步骤:

1.我定义了,自己的上传图片功能,然后调用KE.util.insertHtml("content", html);

其中html = "<span class='conimage'><img src='../upload/" + file + "'/></span>"

file是我获取的图片路径,我这么做的目的是要给插入的图片一个边框,其中在img外面的<span></span>

就是给图片加边框的,那样图片显得好看一点。

我添加第一张图片是正常在html编辑器里面显示是<span class='conimage'><img src='../upload/" + file + "'/></span>然后换行(这里我设置成<br>和<p>换行都不行),会出现这样的情况,在html里面就展示成

<span class='conimage'><span class='conimage'><img src='../upload/" + file + "'/></span></span>

继续ENTER换行一样的都会多加一个<span class='conimage'></span>不管是加入文字,还是插入图片都会多这个。这里很有可能是换行的问题,而不是KE.util.insertHtml() 的问题,希望版主能即使解决这个问题,如果不太明白我的描述,可以在这里留言,我会详细说明。

2.
3.

期望结果:

每次换行正常,而不是我调用了一下KE.util.insertHtml()  给<img>外加了个<span class='conimage'></span>

后面的换行都会多加一个<span class='conimage'></span>

 

作者: sanfran, 发布日期: 2011-08-16 13:44:28
换成4.0吧。3.5.5在插入html时自动给你纠正了太多的HTML,而且某些纠正纠正错了
回复
作者: 多多, 发布日期: 2011-08-16 14:34:32

谢谢楼上的回答,但是问题依然存在。

可能是我的描述不是很正确,我说简单一点吧。

我修改了插入图片的方法

insertimage : function(url, title, width, height, border, align) {
		title = _undef(title, '');
		border = _undef(border, 0);
		var html = '<span class='imgcon'><img src="' + url + '" data-ke-src="' + url + '" ';
		if (width) {
			html += 'width="' + width + '" ';
		}
		if (height) {
			html += 'height="' + height + '" ';
		}
		if (title) {
			html += 'title="' + title + '" ';
		}
		if (align) {
			html += 'align="' + align + '" ';
		}
		html += 'alt="' + title + '" ';
		html += '/></span>';
		return this.inserthtml(html);
	}

我在<img src=''>外面加了个<span></span>

 

按道理插入图片后html应该是

<span class='imgcon'><img src=""></span>

 

然后换行(我是用br换行),换行后应该是

<span class='imgcon'><img src=""></span></br>

 

但是现在的编辑器换行后成了

<span class='imgcon'><img src=""></br></span>

 

所以就会有问题,达不到我的预期效果。

回复
发表新帖 发表回复