主题: 控件隐藏状态无法显示编辑器的问题【已找到完美解决方法】
作者: cnrae, 发布日期: 2012-12-07 19:59:08, 浏览数: 2931

div隐藏none后,编辑器就无法显示

搜坛子里,两个方案中

1、指定宽高参数,试验无效

2、先创建,再移除、创建,再移除.....由于界面众多div切换代码,这样等于要重写很多东西,而且要有很多的判断传递,太麻烦了




【终于找到解决方法,留此给受同样困扰的同学查看】

问题出现在如果包含编辑器的容器存在none或者其他隐藏样式时,编辑器无法加载

如<div style="display:none;">加载编辑器代码</div>


解决方法:不要直接在div上加style标签,而是改为用class样式名控制,将隐藏属性加入样式表中

如:

<style type="text/css">
.none {display:none;}
</style>
<div class="none">加载编辑器代码</div>

js控制div切换显示时,只需要对div容器增加class或者删除class即可


问题还算比较完美的解决,但疑惑的是什么原因呢,难道编辑器加载的时候会检索容器隐藏属性?

作者: Roddy, 发布日期: 2012-12-07 23:08:22
这个我有空调查一下,虽然有变相的解决方案,但这个需求还是蛮多的。
回复
作者: Roddy, 发布日期: 2012-12-09 22:22:33

试了一下以下代码,兼容所有浏览器。


<!doctype html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>KindEditor Test</title>
	</head>
	<body>
		<h1 id="type">KindEditor Test</h1>
		<div id="J_editorArea" style="display:none;">
			<textarea name="editor1" cols="100" rows="20" style="width:800px;height:200px;"></textarea>
		</div>
		<input type="button" id="J_show" value="Show" />
		<input type="button" id="J_hide" value="Hide" />
		<script src="../kindeditor.js"></script>
		<script src="../lang/zh_CN.js"></script>
		<script>
			KindEditor.ready(function(K) {
				K.create('textarea');
				K('#J_show').click(function(e) {
					K('#J_editorArea').show();
				});
				K('#J_hide').click(function(e) {
					K('#J_editorArea').hide();
				});
			});
		</script>
	</body>
</html>
回复
发表新帖 发表回复