0

我让这段代码运行

$j('#nav_menu-2 li li a').bind('click', function(e){ 
    //check when pagination link is clicked and stop its action.
    e.preventDefault();

    //get the href attribute
    var link = $j(this).attr('href');

    $j('#content').load(link + ' #content');
});

它在 chrome、ff、ie9 中运行良好,但问题从 ie8 和 ie7 开始。

我在网上搜索并尝试了这种方式

$j('#content').load(link + '?' + Math.random()*99999 + ' #content');

但它仍然无法正常工作,内容只是没有显示。
这是网站的网址

只需单击第一个蓝色框(箭头 1),然后尝试更改箭头 2 和箭头 3 的内容。

在此处输入图像描述

4

3 回答 3

2

这看起来不对:

$j('#content').load(link + '?' + Math.random()*99999 + ' #content');

试试这个:

$j('#content').load(link + '?' + (Math.random()*99999).toString());

而且我不确定您是否需要该随机数,除非您遇到缓存问题。

$j('#content').load(link);

这是一个禁用缓存的解决方案,它#content在响应中查找,很好衡量(未经测试):

$j.ajax({
    url: link,
    cache: false,
    dataType: "html",
    success: function(data){
        $('#content').html($(data).find('#content').html());
    }
});
于 2013-01-26T22:12:39.873 回答
2

</div>问题是html 代码中有一个多余的标签。所有现代浏览器都能够处理这个问题,但显然 ie8 和 7 只是迷失了这个烂摊子。

于 2013-01-26T22:54:07.657 回答
2

ajax 请求被缓存在 IE8 中,所以只是一个小魔术

$.ajaxSettings.cache = false;

在使用加载函数之前

http://zacster.blogspot.in/2008/10/jquery-ie7-load-url-problem.html

http://api.jquery.com/jQuery.ajax/

缓存(默认值:true,对于 dataType 'script' 和 'jsonp' 为 false)
类型:Boolean
如果设置为 false,它将强制浏览器不缓存请求的页面。注意:将缓存设置为 false 仅适用于 HEAD 和 GET 请求。它通过将“_={timestamp}”附加到 GET 参数来工作。其他类型的请求不需要该参数,除非在 IE8 中对已由 GET 请求的 URL 进行 POST。

于 2013-06-25T12:30:31.430 回答