2015-03-31 106 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()用於清理。