2012-03-10 27 views
0

有誰知道我可以如何設置通過IE7中的DOM方法createElement創建的動態元素CSS。我該如何解決IE7無法設置通過DOM api創建的動態元素的樣式

由於你們中的一些人可能已經或可能不知道,IE7似乎拒絕使用DOM api創建樣式元素,但會很樂意使用innerHTML對它們進行樣式設計。

這似乎是IE7的錯誤,因爲IE8在設計這些動態元素時沒有問題。

在GitHub我分叉這個回購:https://github.com/ChiperSoft/Kalendae,並希望將其轉換爲支持IE7(它聲明它只支持IE8,但起初我注意到一些基本的東西,我可以修復它在IE7中工作,然後我意識到主要問題支持IE7再次是由於這個錯誤IE7扼流圈動態元素)。

(爲了實驗...)我嘗試在腳本完成後加載CSS(就像測試IE7是否爲DOM創建元素呈現樣式一樣)但是沒有工作。

由於腳本的要求和元素的動態特性(它是日期選取器腳本),不可能通過innerHTML創建這些動態元素。

因此,最終我需要嘗試解決如何使用IE7修復此錯誤。

任何想法?

親切的問候, 馬克

+0

我可以給你一個建議。 '如果你想要做得好,就用jQuery'來做。這個庫創建的意圖是要克服這些錯誤。 – Oybek 2012-03-10 14:40:00

+0

Oybek:jQuery不是萬能的......它是由其他有bug的人制作的,並且只適用於中小型網站(沒有太多javascript的地方)...最後,如果它在jQuery中工作,它將以普通的JavaScript工作 – SergeS 2012-03-10 14:43:00

+0

你可以顯示,你如何添加元素? (我現在在我自己的項目上試過了,它能正常工作) – SergeS 2012-03-10 14:45:01

回答

1

我有這個問題之前,但我試圖提交一個動態添加表單元素...基本上,你的元素不渲染。嘗試將它們添加到容器。我記不起手,但我相信我使用了一個動態添加的DIV標籤作爲我的容器。

EDIT 

是的......我是對的。您需要將新元素附加到DIV。看到這個問題/答案javascript createElement(), style problem

0

添加元素後,試圖迫使頁面重繪以下絕招:

document.body.className = document.body.className; 
0

有趣的技巧來處理動態或負載隱藏要素

IE 7將正常工作 第一李頁面上,如果你使用jQuery選擇這樣的:

$('.active').children('.image'); 

HTML:

<li class=active"> 
<li class="hidden"> 
<li class="hidden"> 
<li class="hidden"> 
<li class="hidden"> 

然而,IE 7車站看到第二LI子元素

<li class=hidden"> 
<li class="active"> 
<li class="hidden"> 
<li class="hidden"> 
<li class="hidden"> 

所以現在這個是沒用的:

$('.active').children('.image'); //log returns null in IE7 

我發現,如果你喜歡這個IE7定義選擇開始爲運作「正常」瀏覽器

$('.active .image'); 
相關問題