Javascript:MutationObserver/检测全局样式表规则更改
Javascript: MutationObserver / detect global stylesheet rule changes
在过去的几天里,我一直在努力寻找检测/触发全局CSS更改事件的方法。是的,全局的(所以不是由元素本身设置的(例如style="background:red;"(,而是在单独的.css文件中设置的(。
我尝试过使用MutationObserver(作为我的事件捕获器/实例(,但这个实例似乎没有让我感到满足。相反,最合乎逻辑的方法(据我所知(是存储(目标文件的(所有CSS规则,并设置一个间隔,每隔x秒检查一次更新(比较存储的列表(。但当然,这不是一个好的做法,因为这是浪费内存。
有什么建议吗?他们会出现很多!
我发现这个函数非常有用。但我不确定它是否会触发你想要的方式。
我发现这可以检测检查器中所做的更改(但我读到,由于安全原因,伪类可能会出现一些问题,因为您可以检测是否访问了链接(。
返回一个规则,如:body{color:red;}
document.styleSheets[0].cssRules[0].cssText;
或者这将返回所有附加的样式表。
var allCSS =
[].slice.call(document.styleSheets)
.reduce(function (prev, styleSheet) {
if (styleSheet.cssRules) {
return prev +
[].slice.call(styleSheet.cssRules)
.reduce(function (prev, cssRule) {
return prev + cssRule.cssText;
}, '');
} else {
return prev;
}
}, '');
相关文章:
- 如何添加!对于使用JavaScript的样式表规则非常重要
- 如何动态创建可被早期规则重写的css样式规则
- 用程序从单个HTML元素中删除CSS样式规则
- 如何更改外部样式表的css规则
- 将 CSS 样式规则转换为 HTML 元素(反之亦然)
- 定义导航列表 (css) 的样式规则
- 注入新的样式表规则
- 选择样式属性的规则之一
- 将规则添加到CSS类,然后保存样式表
- 在chrome和safari中,Contenteditable用内联样式替换CSS类和规则
- 将内联样式转换为css规则
- 查找所选元素的所有CSS类规则列表(来自多个样式表)及其活动属性
- Contents ().find('html').html()不设置body的's样式规则
- 访问从CDN加载的CSS的样式表规则
- 如何使用js添加多个样式规则到css伪元素
- 我如何使用webcomponent.js获得样式表css规则
- 如何在没有iframe的情况下从样式和css规则的正常流程中删除网页的一部分?
- 添加规则到样式表 JavaScript - insertRule不起作用
- 动态更改样式表规则选择器
- 使用CSS/javascript/jquery实现一个max-font-size样式规则