我如何使用 javascript 检查 css 属性 在 chrome 中是否有 !important?
How can i use javascript to check if a css property has !important in chrome?
现在是 2020 年,我的目标是 chrome。我只想在 chrome 上查看它,所以这不是同一个问题。我的最终目标是避免无限观察循环。这是我的代码:
.bg-gray-light {
background-color: #fafbfc!important;
}
var e=document.querySelector('div.pagehead.bg-gray-light');
var z= e.style.getPropertyPriority('background-color'); // here is ''
var t=getComputedStyle(e).getPropertyPriority('background-color'); //here is '' too.
那么如何判断background-color是否为'!important'
仅供参考,我想观察样式变化然后更改样式,但如果它很重要,我需要通过 e.style.setProperty() 强制更改。
为了避免无限循环,我不能只是尝试改变风格。
所以我需要知道背景颜色是否为“!重要”。
恐怕 getPropertyPriority 方法仅适用于样式表规则。
在浏览器呈现 dom 之后,很难找到哪个规则更改了特定元素。 dom 和 css 规则中的元素之间的联系消失了(在我看来)。
var declaration = document.styleSheets[0].cssRules[0].style;
var priority = declaration.getPropertyPriority("background-color");
谢谢@dandavis,我改变了主意。我放弃检查'!important',我只是尝试改变样式,但避免无限观察,像这样:
observer.disconnect();
e.style.setProperty(
property,
rgbstring,
priority, //'important' or ''
);
regist(observer,document);
以上代码不足以避免无限观察者,所以我们需要检查这个值是否需要设置,尤其不要一次又一次地改变它。
感谢@dandavis
现在是 2020 年,我的目标是 chrome。我只想在 chrome 上查看它,所以这不是同一个问题。我的最终目标是避免无限观察循环。这是我的代码:
.bg-gray-light {
background-color: #fafbfc!important;
}
var e=document.querySelector('div.pagehead.bg-gray-light');
var z= e.style.getPropertyPriority('background-color'); // here is ''
var t=getComputedStyle(e).getPropertyPriority('background-color'); //here is '' too.
那么如何判断background-color是否为'!important'
仅供参考,我想观察样式变化然后更改样式,但如果它很重要,我需要通过 e.style.setProperty() 强制更改。 为了避免无限循环,我不能只是尝试改变风格。 所以我需要知道背景颜色是否为“!重要”。
恐怕 getPropertyPriority 方法仅适用于样式表规则。 在浏览器呈现 dom 之后,很难找到哪个规则更改了特定元素。 dom 和 css 规则中的元素之间的联系消失了(在我看来)。
var declaration = document.styleSheets[0].cssRules[0].style;
var priority = declaration.getPropertyPriority("background-color");
谢谢@dandavis,我改变了主意。我放弃检查'!important',我只是尝试改变样式,但避免无限观察,像这样:
observer.disconnect();
e.style.setProperty(
property,
rgbstring,
priority, //'important' or ''
);
regist(observer,document);
以上代码不足以避免无限观察者,所以我们需要检查这个值是否需要设置,尤其不要一次又一次地改变它。
感谢@dandavis