我在两个不同的页面中有树,它们都有很多其他的 功能。他们都在Firefox中工作正常,但IE8卡住 “加载..”,没有明显的错误信息(我没有任何 开发工具安装IE8,因为我不知道任何)。jsTree坚持在IE8上“加载”
我在网上看了一下,发现我应该声明一个文档类型,我做了 但是没有帮助。我也尝试剥离页面到 bare essentials + jstree,但树仍然没有工作。
这是代码。我已经拿出了一些我认为不重要的部分(尽管考虑到这个问题,他们可能是)。
我想我在jstree主页上看到了一些关于变量名称和IE不兼容的部分内容 - 例如“使用id 而不是名称”?我的问题可能是因为类似的事情吗? 我也明白一些IE问题是由于IE 处理版本(或者其他的东西,我不太明白它)的奇怪方式。 是什么意思,这可能是我的问题的根源?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/
TR/xhtml11/DTD/xhtml11.dtd">
<?xml version="1.0" encoding="UTF-8" ?>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
-SNIP-
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/
jqueryui/1.8.3/themes/base/jquery-ui.css" type="text/css" />
<script src="<%= hostUrl %>/js/jquery-1.4.2.js" type="text/
javascript"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.13/
jquery-ui.js" type="text/javascript"></script>
<script src="http://jquery-ui.googlecode.com/svn/tags/latest/external/
jquery.bgiframe-2.1.1.js" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.3/i18n/
jquery-ui-i18n.min.js" type="text/javascript"></script>
<script src="<%= hostUrl %>/js/jsTree/jquery.jstree.js" type="text/
javascript"></script>
<link rel="stylesheet" type="text/css" href="/WebUI2/js/jsTree/themes/
css/style.css" />
<script type="text/javascript" src="/WebUI2/js/jsTree/themes/js/
jquery-ui-1.8.13.custom.min.js"></script>
-SNIP-
<script>
$(function() {
$("#tree")
.jstree({
"json_data" : {
"ajax" : {
"url" : "getAreaTree?treeType=Areas&ownerPhone=<
%=webSessionObject.getUserPhoneNum()%>",
"data" : function (n) {
return { id : n.attr ? n.attr("id") : 0 };
}
}
},
types : {
types : {
"folder" : {
},
"file" : {
"valid_children" : "none"
}
}
},
checkbox : {
"real_checkboxes" : "true",
"override_ui" : "true",
"real_checkboxes_names" : function(n){
console.log("Aasd");
return[("area"+n[0].id),n[0].id];
}
},
themes : {
theme : "apple"
},
"plugins" : ["json_data", "ui", "checkbox", "types", "themes" ]
});
});
</script>
<div class="box_start">
<div class="box_content">
<h1><fmt:message key="owner.text.areas" /></h1>
<div id="tree"style="overflow:auto border:none"></div>
<br />
</div>
<div class="box_end"></div>
</div>
这个副本用于另一个论坛,我做了一些改动。我已经更新jQuery到它的最新版本(1.6.2),并且我已经消除了一些自我关闭标签(链接,输入,中断)。
这是我的JSON片段(它不是整个JSON,所以可能会出现括号错误)。更新后的版本使用“idx”而不是“x”,x是一个数字。
[{ "data" : "Areas", "attr" : { "id" : "1", "rel" : "folder" }, "state" : "open",
"children" : [{ "data" : "[Testi]", "attr" : { "id" : "261", "rel" : "folder" },
"state" : "closed",
"children" : [ ] } , { "data" : "TESTI", "attr" : { "id" : "11", "rel" : "folder" },
"state" : "closed",
"children" : [{ "data" : "[ Kansio ]", "attr" : { "id" : "271", "rel" : "folder" },
"state" : "closed",
"children" : [ ] } , { "data" : "[ folder ]", "attr" : { "id" : "281", "rel" :
"folder" }, "state" : "closed",
"children" : [ ] } ] }]
PS。对不起格式不好,仍然不能很好地处理SO ^^ ;;
我通过jsLint运行JSON,结果很糟糕。我修正了这些错误(像不应该有的空间那样的愚蠢),但IE仍然不起作用。我为IE下载了DebugBar,但它不报告任何错误 - 只是关于html标签的一些警告。我大吃一惊。 –