通过ajax加载的Div内容不';不要出现在IE中

通过ajax加载的Div内容不';不要出现在IE中,ajax,internet-explorer,Ajax,Internet Explorer,以下是ajax调用: function loadContent( url ) { jQuery.ajax({ url: url, success: function(data) { // set content jQuery("#overlayDiv").html(data); // hide loading spinner jQuery("

以下是ajax调用:

function loadContent( url ) {
 jQuery.ajax({
        url: url,
        success: function(data) 
        {           
          // set content
          jQuery("#overlayDiv").html(data);

          // hide loading spinner
          jQuery("#overlayCleared").hide();          
        }
      });
}
它在除IE之外的所有其他浏览器中都能正常工作,IE中的div保持为空..:(

我使用的css是:

div#overlayDiv {
    overflow: auto;
    position: relative;
    height: 95%;
}
div.video_overlay { /* this class will be added to the div using jQuery */
    padding-left: 0px;
    width: inherit;
    top: 35px;  
}
我能怎么办


非常感谢

几天前我遇到了同样的问题,我只是做了这个更改,它解决了这个问题

(*考虑到指向本地主机的url) 在ie上测试时,确保您的url指向127.0.0.1,例如:

使用------->
实际上,与-->

不同的是,您可能遇到了IE Ajax缓存问题,IE倾向于缓存GET请求的结果。请参阅


解决方案是使用POST(注意:jquery默认为GET)

我刚刚解决了一个需要IE8兼容性的大型HTML5应用程序的相同问题。Ajax调用返回的HTML非常复杂,包括带有大量jquery和独立JavaScript代码的脚本标记

除了众所周知的IE缓存问题(以及其他一些问题),这类问题的关键在于IE在允许dinamic HTML内容加载到任何元素时非常挑剔,在我的例子中,它是一个DIV。IE不仅挑剔,而且表现出一种随机行为,比如呈现返回HTML的一部分,或者根本不呈现任何内容,而部分呈现的内容之间没有任何明显的关系HTML和最终发现的编码问题

最重要的是,它不会抛出任何HTML编码错误,这使得调试此类场景成为了一件非常麻烦的事情。在我的例子中,我别无选择,只能使用90年代的调试技术。我通过复制浏览器检查视图中的节点代码,从Chrome获取返回的HTML代码,将其放入一个平面.HTML文件并使用此服务器side code从平面文件中读取代码

    $myfile = fopen("flatfile.html", "r") or die("Unable to open the file");
    echo fread($myfile,filesize("flatfile.html"));
    fclose($myfile);
从那时起,使用返回的代码并将其输入到容器对象中,首先将其分为两部分(让每个部分自己成为一段连贯的代码),查看两部分中的哪一部分被呈现,以及哪一部分没有呈现,依此类推,直到找到有问题的代码


需要注意的一点是,无论HTML和Javascript的混合程度有多复杂,IE8都可以工作,您只需痛苦地调试代码即可。如果我这么说,是因为您会发现许多帖子指出IE7,8无法处理复杂的Ajax返回代码或JQuery的.HTML()在这种情况下,属性不起作用。这不是真的,慢慢来,你会发现问题所在,不要放弃。

它起作用。:)谢谢。我有一个虚拟主机设置为127.0.0.1,这是目前唯一的一个,但是如果有更多的虚拟主机呢?那怎么办?谢谢!我不知道这件事。。不管怎样,我的问题最终是由于css。