IE7和ie8的jQuery load()问题



我一直在寻找最佳解决方案的jquery .load问题的影响ie7和8,我有以下代码块,这是从外部jsp页面加载我的内容没有问题,除了所有浏览器的bug ie7和8。

$(document).ready(function(){
    $.ajaxSetup({ cache: false });
    setInterval(function () {
        $('#myDiv').load('test.jsp').fadeIn("slow");
    }, 10000); 
});

我发现了很多解决方法,比如设置新的日期,如:

$('#myDiv').load('test.jsp',{noncache: new Date().getTime()},function(){..}).fadeIn("slow");

但是没有为我工作,仍然不能在IE7和8上加载内容

首先,如果您想让内容淡出,那么它首先必须是隐藏的。如果包含的div已经可见,则不能淡出。

其次,有些版本的IE对缓存有点热心,你可以在URL中使用唯一参数来阻止缓存(就像你尝试过的那样)。

第三,.load()不是动画,所以它不使用动画队列,所以如果你想在加载完成后做一些事情,那么你需要在完成函数中完成它。你有后两者的一部分,但还没有把它们全部放在一起。

你可以像这样把这三个组合起来:

$(document).ready(function(){
    var myDiv = $('#myDiv');
    setInterval(function () {
        myDiv.fadeOut('slow', function() {
            var now = new Date().getTime();
            myDiv.load('test.jsp?unique=' + now, function() {
                myDiv.fadeIn('slow');
            });
        });
    }, 10000); 
});

最新更新