【发布时间】:2011-07-06 12:41:54
【问题描述】:
我在两个不同的页面中有树,都有很多其他的 功能也。它们在 Firefox 中都可以正常工作,但 IE8 卡住了 在“加载..”上,没有明显的错误消息(我没有任何 为 IE8 安装了 devtools,因为我什么都不知道)。
我在网上看了,发现我应该声明一个doctype,它 我做了,但没有帮助。我还尝试将页面剥离到 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 的 sn-p(它不是整个 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" : [ ] } ] }]
附言。很抱歉格式不好,仍然无法处理 SO ^^;;
【问题讨论】:
-
我通过 jsLint 运行 JSON,结果很糟糕。我修复了错误(一些愚蠢的东西,比如不应该有空格的地方),但 IE 仍然无法正常工作。我下载了 IE 的 DebugBar,但它没有报告任何错误——只是一些关于 html 标签的警告。我大吃一惊。
标签: jquery json internet-explorer internet-explorer-8 jstree