2013-08-29 97 views
2

頁面底部加載要解決HTML5標記(文章,放在一邊,頁腳,頭,hgroup,導航,部分)與IE8的兼容性不工作時,我通常添加此javascript:修復HTML5標記IE8在

document.createElement("article"); 
document.createElement("aside"); 
document.createElement("footer"); 
document.createElement("header"); 
document.createElement("hgroup"); 
document.createElement("nav"); 
document.createElement("section"); 

,並在CSS文件

article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, ection, summary { 
    display: block; 
} 

如果我加載JS中的「頭」它工作正常,但現在我加載頁面的底部,所有的JS(前關閉「身體」)沒有按沒有工作。

有什麼想法?

感謝

+1

元素必須在第一次出現之前「知道」。順便說一句,你爲什麼不使用[html5shiv.js](https://github.com/aFarkas/html5shiv/)呢? – Andreas

+0

值得一提的是,您在此處使用的代碼僅處理問題的一部分(使用HTML5元素加載頁面)。但是還有更多的錯誤可能會讓你或你的訪問者失控。如果您在頁面上有動態內容,或者您​​想打印該頁面,例如,您的修復程序將不足。您應該使用完整的html5shiv來正確解決問題,而不是做一半的工作。 – Spudley

+0

感謝您的信息安德烈亞斯和斯普德利,我會考慮這兩個建議。 – luisandani

回答

2

您應該加載IE8應該知道他們的HTML5標記之前固定的JavaScript。否則ie8將這些標籤視爲HTMLUnknownElement。所以,那個js應該在頭標籤裏。順便說一句,下面的代碼是不是更小? =)

var tags='article|aside|footer|header|hgroup|nav|section'.split('|'), i=0, max=tags.length; 
for(;i<max;i++) { 
    document.createElement(tags[i]); 
}