我一直在寻找解决方案,但我仍然看到这个错误。
这是我们客户的Expression Engine设置,我们希望实现ajax-navigation。为此,我们使用默认的$ .load()函数,这在ie9,FF,Safari,Chrome,Opera中完美运行......但它在ie8及以下版本中不起作用。
我测试了回调函数,一个是IS被调用,数据被发送,我可以在登录时在控制台中读取它。但由于某些奇怪的原因,数据未插入。
以下是代码:
load_page: function(url, func){
$('#content').load(url+' #content>div', function(data, textStatus, jqXHR){
console.log('page loaded!');
});
}
回调函数中有一大堆额外的代码,但我一直在清理整个javascript / css的一切。寻找虫子但没有找到任何东西。
根据评论我决定添加网址和下载:
另一个难题: javascript中有一些奇怪的东西。即使是google maps api也无法正常运行,这是我第一次使用google maps api时发生这种情况。
编辑:已回答
我终于找到了这个问题的答案,感谢@epascarello。事实上,我试图导入的数据是错误的。因为IE8&下面不了解HTML5他们会尝试将元素导入到dom中,但在提醒数据时我看到以下内容:[object HTMLUnknownElement],[object HTMLUnknownElement],[object HTMLUnknownElement],...
当我更改数据的标记以使用好的旧div而不是article-elements时,一切正常!
答案 0 :(得分:3)
我遇到了同样的问题,我注意到如果url返回无效的HTML(例如额外的结束标记),它可以阻止它加载或找到正确的元素。
在我的示例中,我所要做的就是更正URL中的HTML,然后才能正常工作。
答案 1 :(得分: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时,该参数除外。
答案 2 :(得分:1)
我唯一能看到这段代码的错误就是你错过了一个结束括号
load_page: function(url, func){
$('#content').load(url+' #content>div', function(data, textStatus, jqXHR){
console.log('page loaded!');
} // <-- this one
});
答案 3 :(得分:0)
$.load()
工作。我的猜测是你有一个以前的JS错误,仅在IE8中触发,这会阻止它正常运行,或被完全调用。
答案 4 :(得分:-1)
问题是某些功能在一个而不是其他功能中得到支持。例如,我个人的讨厌之一是如何仅在ie7,8中支持innertext,而不支持fox或chrome。如果您对http://www.quirksmode.org/dom/w3c_html.html感兴趣,可以使用以下兼容性图表。
最重要的是,除非你打算自己更换插件并且你已经尝试过现代化器并且没有帮助,否则你将不得不使用另一种加载数据的方法。我的建议是使用.html,你不能错,或者在js中自己附加和手工形成html。更简单始终是最佳解决方案。