0

我试图使用chrome的window.getMatchedCSSRules方法获得元素的匹配CSS规则。但是这种方法并没有给出我的伪元素和伪类的规则。但是,通过将伪类/元素名称作为方法的第二个参数传递,单独返回规则。window.getMatchedCSSRules适用于所有规则,包括伪元素和伪类规则

window.getMatchedCSSRules(btn, "before") 
window.getMatchedCSSRules(btn, "after") 
window.getMatchedCSSRules(progressEle, "-webkit-progress-value") 

但是,有没有办法让所有的CSS规则,包括其所有的伪类/元素的规则,而没有经过特定的伪元素/类名作为参数?

+0

我以前从未见过这种类似的效果。看来该方法从未打算用于网站;这是一种内部方法,只能用于开发工具,即使在那里也不推荐使用。解释为什么我无法在任何地方找到任何文档。 – BoltClock

+0

是@BoltClock它不适用于网站。我正在将此用于基于[CEF](https://code.google.com/p/chromiumembedded/)的桌面应用程序,该应用程序具有所有Chrome API – Darshan

+0

IIRC,该方法最初是在WebKit中专门为因为它最初使用JavaScript API访问页面信息(包括CSS),因此Web Inspector的用途(Chrome DevTools随后发展)。 WebKit错误跟踪器中存在[Remove getMatchedCSSRules](https://bugs.webkit.org/show_bug.cgi?id=79653)问题。 –

回答

2

您不能使用javascript或jquery作为伪元素,因为它们不是(还)DOM元素。

但是,如果你想通过JS操纵CSS元素 - 你也许能够实现与https://github.com/Box9/jss

希望帮助