主题: 3.5.1 拖动编辑器的下边框来改变它的大小时,怎么发现变卡了?
作者: wangjinkun, 发布日期: 2010-07-20 10:22:51, 浏览数: 5713
疑问:我拖动编辑器的下边框来改变它的大小时,怎么发现变卡了,没有3.5或3.4.x版本平滑流畅???我用的IE7,在火狐下是正常的!
作者: Roddy, 发布日期: 2010-07-20 10:31:07
IE6上确实比较卡,我检查一下原因。
回复
作者: wangjinkun, 发布日期: 2010-07-21 08:19:07
不知楼主发现了什么问题没?为什么之前的版本没这个现象?我关注了快一天了!!!
回复
作者: Roddy, 发布日期: 2010-07-21 10:25:32
3.5.1拖动小图标改用css,原来是用td的align属性的,可能和这个有关。
回复
作者: wangjinkun, 发布日期: 2010-07-21 11:54:18
那能不能改回来?怎么改??
回复
作者: Roddy, 发布日期: 2010-07-21 13:11:20

找到原因了,原因是改变大小时js执行的太快,IE来不及刷新页面。这个问题真的很雷人,优化了代码在IE下反而出现问题。解决方案是KE.util.resize里的g.container.style.height = height;上面加入以下代码就可以。

if (KE.browser.IE) {
	//improve IE performance (issue #126)
	g.toolbarTable && g.toolbarTable.offsetHeight;
}

修改后的resize方法

resize : function(id, width, height, isCheck, isResizeWidth) {
	isResizeWidth = (typeof isResizeWidth == "undefined") ? true : isResizeWidth;
	var g = KE.g[id];
	if (!g.container) return;
	if (isCheck && (parseInt(width) <= g.minWidth || parseInt(height) <= g.minHeight)) return;
	if (isResizeWidth) g.container.style.width = width;
	if (KE.browser.IE) {
		//improve IE performance (issue #126)
		g.toolbarTable && g.toolbarTable.offsetHeight;
	}
	g.container.style.height = height;
	var diff = parseInt(height) - g.toolbarHeight - g.statusbarHeight;
	if (diff >= 0) {
		g.iframe.style.height = diff + 'px';
		g.newTextarea.style.height = (((KE.browser.IE && KE.browser.VERSION < 8) || document.compatMode != 'CSS1Compat') ? diff - 2 : diff) + 'px';
	}
},

回复
作者: Roddy, 发布日期: 2010-07-21 13:14:51
回复
作者: wangjinkun, 发布日期: 2010-07-21 14:43:20

版主辛苦了。在右下角进行对角拖动已经解决问题了,可是在编辑器的下边框中间处,进行竖直方向拖动还是卡!

回复
作者: Roddy, 发布日期: 2010-07-21 15:18:55

修改以后我这里没问题,IE6。

是不是编辑器下面还有其它内容?因为编辑器高度有变化,浏览器要重新画编辑器下面的内容。

回复
作者: wangjinkun, 发布日期: 2010-07-21 15:33:51
谢谢!编辑器下面是有其它内容,可是一个页面上不可能只单纯放一个编辑器的!希望版主有空再研究一下!!!
回复
发表新帖 发表回复