2012-06-06 62 views
1

我知道有些人會批評我想要的,但我會問我的問題。從javascript獲取非內聯CSS


我知道,如果他們的css不是內嵌格式,我們就無法獲得元素的樣式。所以我想要一個正則表達式(因爲我不是很好做​​),將得到所有的style標籤,並將其innerHTML應用正則表達式來創建一個像這樣的數組:

css [「myDiv」] [ 「color」] - >「red」

由於瀏覽器不兼容而不使用getComputedStyle

+0

請參閱http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags – woz

+1

使用getComputedStyle和IE9以前版本的組合, 'currentStyle'。 – Snuffleupagus

回答

3

有沒有辦法使用正則表達式來實現遠程接近這一點。使用複雜的算法來應用CSS規則,並且規則可以以各種方式被繼承,優先化和重寫。主要的瀏覽器需要多年的時間才能提出合規的實施方案,這並非巧合。

您應該改用該實施。您需要的工具是JavaScript,您需要的API是DOM。對於DOM中的每個節點,都有一個樣式對象,其中包含所有應用樣式,其格式非常接近您要生成的樣式。您可以通過getComputedStylecurrentStyle訪問此頁面。

+0

你可以添加getComputedStyle和currentStyle的跨瀏覽器組合,就像snuffleupagus說的那樣,我會檢查你的答案爲接受! – user1365010

+0

我會給你一個鏈接到一個有用的信息和你需要的代碼頁面:http://www.quirksmode.org/dom/getstyles.html –