jqTree 在 IE11 中不执行保存状态工作正常 FF12.
jqTree not performing saveState in IE11 works fine FF12
我正在开发一个Web应用程序,并且正在使用jqTree插件作为树菜单。我在创建树时使用 saveState 参数。它在FireFox 12中工作正常,即它在刷新时记住树的状态(使用localStorage),但在Internet Explorer 11中,它不会将数据保存到localStorage或作为cookie(我已经根据jqTree作者的说明添加了JQuery cookie,我可以很好地读写cookie)。
出于无奈,我把一个开放节点的列表作为字符串保存到localStorage中,然后尝试遍历列表,使用jqTree的openNode函数打开节点。这也行不通。任何人都可以建议任何解决方法/修复方法吗?谢谢。:)
附言它在IE11中崩溃,并在tree.jquery.js的第1839行显示错误消息"'JSON'未定义"。
更新:通过将 js_json2.js 添加到配置并将 tree.jquery.js 的第 1839 行更改为
state = JSON.stringify(this.getState(),undefined); //added undefined as second argument
但是现在折叠的节点正确显示展开/折叠图标,但应该不可见的子节点仍显示如下:
▼节点1ajax
儿童1 儿童2
▼节点2
儿童3
►儿童4
子2
在这种情况下,sub2 不应该可见,而是可见的。
错误消息JSON is undefined
是这里的重要线索。
JSON
API是一个标准化的API,目前所有浏览器都支持,包括IE11和Firefox(是的,甚至可以追溯到FF12)。
那么,为什么IE11在支持它时会说它是未定义的呢?
只有一个可能的原因:IE 必须处于向后兼容模式,该模式将删除对 JSON API 的支持。
这可能有两种可能的模式:IE7 兼容模式或 Quirks 模式。解决方案取决于您所处的模式。
您可以通过按 F12 调出浏览器开发工具并转到"仿真"选项卡来找出您所在的位置。如果它显示的数字是"7",那么你处于IE7模式,如果它是5,那么你处于怪癖模式。
- 怪癖模式
:如果您的 HTML 代码没有有效的文档类型,所有版本的 IE 都将回退到怪癖模式。您也可以使用某些类型的无效 HTML 触发它,但缺少文档类型是迄今为止最常见的原因。
因此,请确保您的 HTML 页面都以如下所示的行开头:
<!DOCTYPE html>
.这应该确保您没有处于怪癖模式。(其他有效的文档类型也可以,但这是最容易使用的)。此外,通过 W3C 验证器运行您的 HTML,以确保您没有任何可能影响它的损坏 HTML。
IE7 兼容模式:这通常由浏览器设置触发,尤其是在公司网络环境中。您可以通过指定
X-UA-Compatible
元标记来覆盖它。您可以通过将以下行添加到 HTML 代码的<head>
部分来执行此操作:
执行上述两项操作,浏览器应该进入标准模式,这应该意味着您会发现IE11开始表现得更好。您不再需要添加js_json2.js,并且您可能可以撤消为尝试解决它所做的所有其他"修复"。
希望有帮助。
- 为什么没有'无法通过状态更改工作RTCPeerConnection
- 按钮处于活动状态,焦点无法在Mac FireFox上工作
- Javascript:onclick函数工作一次,页面就会恢复到原来的状态
- 这个预加载器工作吗?它不用于显示状态,只是加快了以后可能的图像加载速度
- 流行状态未按预期工作
- 如果其他状态无法正常工作
- 推送状态仅工作一次
- 弹出状态无法正常工作
- jqTree 在 IE11 中不执行保存状态工作正常 FF12.
- 使用服务跟踪用户状态并使 $watch() 正常工作
- 引导有状态按钮未按预期工作
- 设置 JQuery HTML javascript 复选框工作,但不显示为选中状态
- 隐藏滚动条以保持其工作状态(具体情况)
- 如何使setInterval即使在chrome中的选项卡处于非活动状态时也能工作
- angular ui路由器状态模板不工作
- 具有url参数的角度状态/路由器不工作
- 如何通过javascript工作程序显示循环进程状态
- XMLHttpRequest异步不工作.状态= = 0
- IE7,8悬停状态不工作时,使用下划线模板填充html
- 不适合杀蛇的工作状态加上一个物体不适合工作的属性