2015-03-31 108 views
4

在我的.net MVC3 web应用程序中,我有一个ajax调用,它返回一些html代码。我通过这个网站变成一个div像这样:jQuery .html()函数在IE中不起作用11

$.ajax({ 
      url: 'controller/action', 
      data: {id: id,}, 
      type: 'GET', 
      async: false, 
      success: function (data) { 
       $("#container").html(data); 

      }, 
     }); 

这在所有浏览器工作正常,除了即11会发生什么情况是,HTML犯规在#container的DIV渲染,除非我的地方点击页面上。

我怎样才能得到HTML呈现,而无需点击ie11中的任何地方?

感谢

+0

你有没有设置容器的高度宽度?我认为可能会有这样的问题,即渲染不会发生。 – 2015-03-31 06:37:07

+0

我没有。但我试图设置一个高度和宽度,它仍然没有工作。 – Notaras 2015-03-31 06:43:31

+0

尝试控制台查找错误并检查未关闭的标记。你的html应该是干净的。 ('div')。append(data);'OR'$('div')。appendTo(data);' – 2015-03-31 07:16:15

回答

1

可能的原因是HTML中有一小部分语法是由AJAX返回的,IE不满意。在我的情况下,它是由<script>标记中的HTML注释引起的。 IE浏览器崩溃了,但其他浏览器都很好。

我建议从ajax调用返回的HTML除了'TEST'之外的所有行除外。如果那有效,那么你知道它不是一个JQuery/Javascript问题。然后,您可以在返回的HTML中添加行,直到找到IE不满意的行。

+0

该错误不再是我的客户的问题。林不知道为什么......它可能是一个浏览器的错误,但无论如何,我接受你的答案,因为我同意你的调试方法。它在过去创造了奇迹 – Notaras 2016-02-16 22:21:16

1
$.ajax({ 
      url: 'controller/action', 
      data: {id: id,}, 
      type: 'GET', 
      async: false, 
      success: function (data) { 
$("#container").empty().append(data); 


      }, 
     }); 

使用附加,而不是HTML来避免这些问题。在追加之前,empty()用于清理。