javascript - 浏览器渲染 Hook

标签 javascript css google-chrome firefox browser-addons

浏览器是否提供任何预渲染 Hook ,您可以在渲染之前对 DOM 元素的样式应用更改?

例如,我可能想将所有红色的颜色更改为绿色

此要求适用于浏览器扩展,因此该解决方案应该适用于不同的网页。在不知道源代码的情况下覆盖元素的样式并非易事,因为元素的样式是在其上运行的 CSS 和 Javascript 的结果,并且不同网站的机制不同。想到的方法是:

  • 解析网页的 CSS 和 Javascript 以确定元素的样式。这似乎是多余的,因为浏览器也在这样做
  • 扫描 DOM 并检查每个元素的计算样式和覆盖内容。这可行,但如果元素动态变化,我们必须重复扫描可能很重的变化

那么这样的浏览器钩子(Hook)是否存在呢?如果不是,您会推荐什么替代方法?

最佳答案

对于您想要实现的目标,查看名为 Dark Reader 的 Chrome 扩展程序的代码会对您很有帮助。 .这个扩展可以让你的整个页面变暗,但通过分析代码的 css 来智能地做到这一点。如果某些东西已经是黑暗的,它会保持原样。只有在需要对比度时,才会将明亮的背景设为黑色,将文本设为白色。 图片会让事情变得清晰

原创 Original

暗色阅读器渲染 enter image description here

dark reader使用js解析css和styles,在页面中注入(inject)自己的CSS样式,达到需要的效果。

如果您真的想利用浏览器的渲染管道,请查看 Project Houdini这将允许将来对浏览器进行此类自定义。现在还没准备好。

关于javascript - 浏览器渲染 Hook ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54277787/

相关文章:

html - Bootstrap Css 避免列堆叠

html - 每个浏览器渲染 css 的方式不同吗?

javascript - 遵循 url 方案后与 HTML5 Web SQL 的连接丢失

firefox - 边框半径应该以 Firefox 方式还是以 Webkit 方式工作?

javascript - 向 vue 组件添加属性

css - 带圆 Angular 和缩进曲线边框的正方形

javascript - 如何从 Angular 4中的JSON文件获取json数据

javascript - 是否有针对 CSS 的 LESS 的 JavaScript 实现?

javascript - Require.js + 类型错误 : Backbone is undefined after optimization

javascript - 使用 jQuery 在父/集中查找选择器位置?