2012-06-06 22 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 –