jquery .load()不在ie8及以下插入数据

我一直在寻找解决方案,但我仍然看到这个错误。

它是我们客户的Expression Engine设置,我们想要实现ajax-navigation。 为此,我们使用默认的$ .load()函数,这在ie9,FF,Safari,Chrome,Opera中完美运行……但它在ie8及以下版本中不起作用。

我已经测试了回调函数,一个是被调用的,数据是发送的,我可以在登录时在控制台中读取它。 但由于某些奇怪的原因,数据未插入。

这是代码:

load_page: function(url, func){ $('#content').load(url+' #content>div', function(data, textStatus, jqXHR){ console.log('page loaded!'); }); } 

回调函数中有一大堆额外的代码,但我一直在清理整个javascript / css的一切。 寻找虫子但没有找到任何东西。

根据评论我决定添加url和下载:

  • 该网站存在此问题: http : //www.track.be/devo_9836/nl/ee.php
  • 一个文件包,有问题: http : //stijnd.be/ie8_load.zip

另一个难题: javascript中有一些奇怪的东西。 即使是谷歌地图api也无法正常运行,这是我第一次使用谷歌地图api时发生这种情况。

编辑:回答

我终于找到了这个问题的答案,感谢@epascarello。 事实上,这是我试图导入的数据的错误。 因为IE8及以下版本不了解HTML5,所以他们会尝试将元素导入到dom中,但在提醒数据时,我看到了以下内容:[object HTMLUnknownElement],[object HTMLUnknownElement],[object HTMLUnknownElement],…

当我更改数据的标记以使用好的旧div而不是article-elements时,一切正常!

我有同样的问题,我注意到如果url返回无效的HTML(例如额外的结束标记),它可以阻止它加载或找到正确的元素。

在我的示例中,我所要做的就是更正URL中的HTML,然后它才能正常工作。

ajax请求缓存在IE8中,所以只是有点神奇

$ .ajaxSettings.cache = false;

在使用加载function之前

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

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

cache(默认值:true,false,对于dataType’script’和’jsonp’)
类型:布尔值
如果设置为false,它将强制浏览器不缓存请求的页面。 注意:将缓存设置为false只能与HEAD和GET请求一起正常工作。 它的工作原理是将“_ = {timestamp}”附加到GET参数。 其他类型的请求不需要该参数,但在IE8中,对已经由GET请求的URL进行POST时除外。

我唯一能看到这个代码错误的是你错过了一个结束括号

 load_page: function(url, func){ $('#content').load(url+' #content>div', function(data, textStatus, jqXHR){ console.log('page loaded!'); } // <-- this one }); 

$.load()在IE8中有效。 我的猜测是你有一个以前的JS错误,仅在IE8-中触发,这会阻止它正常运行,或被完全调用。

问题是一些function在一个而不是其他function中得到支持。 例如,我个人讨厌的一个问题是如何仅在ie7,8中支持innertext,而不支持fox或chrome。 如果您对http://www.quirksmode.org/dom/w3c_html.html感兴趣, 请参阅下面的兼容性图表。

最重要的是,除非你打算自己更换插件并且你已经尝试过现代化器并且没有帮助,否则你将不得不使用另一种加载数据的方法。 我的建议是使用.html,你不能错,或者在js中自己附加和手工形成html。 更简单始终是最佳解决方案。