由于我们是把树作为一个模块单独抽离出来,让使用者直接调用我们一个js就好了,所以我在树模块中就把需要的js和css都加载好。但是Ztree和Layui结合使用加载机构树在谷歌浏览器成功展示以后在ie8上却报错了
后面加了兼容ie8的代码后成功显示
var node = document.createElement('script');
node.src = contextPath+"/common/zTree/js/jquery.ztree.all.min.js";
node.type = "text/javascript";
var nodetcss = document.createElement('link');
nodetcss.href = contextPath+"/common/zTree/css/tree.css";
nodetcss.type = "text/css";
nodetcss.rel = "stylesheet";
var nodezcss = document.createElement('link');
nodezcss.href = contextPath+"/common/zTree/css/zTreeStyle/zTreeStyle.css";
nodezcss.type = "text/css";
nodezcss.rel = "stylesheet";
head.appendChild(node);
head.appendChild(nodetcss);
head.appendChild(nodezcss);
if(node.addEventListener){
//添加js文件加载完成的事件(addEventListener对于IE8不支持)
node.addEventListener("load",function(e){
$.fn.zTree.init($(treeId),setting);
});
}else {
//对于不支持addEventListener的浏览器的处理
node.onreadystatechange = function(){
var state = node.readyState;
if(state == 'loaded' || state == 'complete'){
//zTree的js文件加载完成后执行
node.onreadystatechange = null;
$.fn.zTree.init($(treeId),setting);
}
}
}
由于ie8不支持addEventListener这个方法,所以我们采用下面那种,监听node的状态,当node的状态为下载完成(loaded)或者脚本执行完毕后(complete)我们再去初始化树
在做的过程中还发现另外一个问题
后查资料看博客,发现是<select标>签的问题,在下面加一个空的<option>就可以了