2012-06-06 77 views
0

更新:應該關閉此問題,因爲問題是由於我自己的編碼錯誤而導致的,並不是真的有用。jQuery.html()在Internet Explorer 8中帶有領先的空格和錨標記

當IE8和jQuery.html()裏面有一個領先的空白和一個錨標記時,我遇到了問題。若要重現該問題,請到這裏:

http://jquery.com/ 

現在進入IE8開發者控制檯這樣的:

$('body').html(' test<a href="">foo<a>'); 

你會發現,沒有被印在屏幕上。在控制檯中輸入這將確認正文的內容爲空:

$('body').html(); 

如果我使用本地的innerHTML,不會出現此問題。 jQuery繞過了IE8的本地innerHTML,而是使用jQuery.append(),因爲IE8會去掉領先的空白。

任何人都知道爲什麼會發生這種情況?這是一個已知的錯誤?

+0

爲什麼這個空白對你來說如此重要?它什麼都不知道...... – gdoron

+0

看起來可能是一個錯誤。 – j08691

+1

我沒有IE來測試這個在我面前,但這裏是他所指的代碼行:https://github.com/jquery/jquery/blob/master/src/support.js#L36 https://github.com/jquery/jquery/blob/master/src/manipulation.js#L226 – noob

回答

3

您的標記是無效的,如果您關閉它,它的工作原理,

$('body').html(' test<a href="">foo</a>'); 

我不知道的jQuery應該怎麼這裏雖然處理無效的標記,所以它可能仍然是一個錯誤。

+1

我不確定無效標記上的未定義行爲可以被視爲一個錯誤。垃圾進垃圾出。 –

+0

哇,謝謝。對我來說這是一個巨大的疏忽。我將刪除該問題,因爲這對其他人沒用。 –

+0

@JohnnyO,或者我們可以將它關閉爲過於本地化,也許它會幫助其他人犯同樣的錯誤。你的選擇。 –