我有一个页面,它使用具有静态和动态内容的jQuery UI选项卡。我在加载选项卡后尝试cache
选项卡内容,因此如果用户关闭选项卡然后想要重新进入,我不必再次返回服务器,并可以使选项卡显示在选项卡列表的末尾。这在FF,Chrome,Safari,Opera和IE 8和9中都很有效。但是IE7给我带来了麻烦。
以下是我所做的jsFiddle演示此问题。从我所知道的问题来看,即使在内容加载一次后,也会调用beforeLoad
函数。我知道我应该使用cache: true
选项进行缓存,但由于用户可以关闭选项卡然后尝试回复它,我认为这可能会更加优雅。
要复制问题:
Dynamic 1
按钮。系统会显示一个新标签Dyn 1
,其中包含一些内容Dyn 1
标签。内容现在将显示unable to load dynamic tab
在使用jQuery UI的cache: true
选项和更改href
函数中的标签load
属性时都会发生这种情况,就像我一样。
有没有人有类似的经历和/或知道我可能做错了导致这个?
谢谢。我们非常感谢您的帮助。
答案 0 :(得分:1)
我无法得到关于为什么会发生这种行为的答案。但是,我确实找到了一个有效的解决方案。如果其他人碰巧遇到了同样问题的答案,这就是我修复它的方法:
变化:
beforeLoad: function(evt, ui) {
ui.jqXHR.error(function(jqXHR) {
ui.panel.html('Unable to load application');
});
}
要:
beforeLoad: function(evt, ui) {
ui.jqXHR.error(function(jqXHR) {
if(jqXHR.statusText !== 'canceled') {
ui.panel.html('Unable to load application');
}
});
}
为什么即使beforeLoad
调用了cache: true
方法,或者更改了标签的href
,我仍然不确定。我将把它提交给jQuery bug论坛,看看他们说了什么。如果是错误,我会尝试使用故障单更新此帖子。