我运行了这段代码
$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');
但它仍然不起作用,内容只是没有显示 this is the url to the site
只需点击第一个蓝框(箭头1),然后尝试更改箭头2和箭头3的内容。
答案 0 :(得分: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());
}
});
答案 1 :(得分:2)
问题是html代码中的一个额外不需要的</div>
标记。
所有现代浏览器都能够处理这个问题,但显然ie8和7只是迷失了这些混乱。
答案 2 :(得分: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,false,对于dataType'script'和'jsonp')
类型:布尔
如果设置为false,它将强制浏览器不缓存请求的页面。注意:将缓存设置为false只能与HEAD和GET请求一起正常工作。它的工作原理是将“_ = {timestamp}”附加到GET参数。其他类型的请求不需要该参数,但在IE8中,当对已经由GET请求的URL进行POST时,该参数除外。