javascript - 用于修复 css 的用户脚本

标签 javascript jquery css userscripts

我正在为一页编写用户脚本。它在 chrome 下工作。 该页面上的元素与 Firefox 中的圆 Angular 元素相同。我想修复它,以便这些元素在谷歌浏览器中具有圆 Angular 边缘。

我只想在所有链接的 CSS 样式表中将 Firefox 语法替换为 chrome 语法。 最好的方法是什么?

我正在使用 jquery。

最佳答案

这对用户脚本来说不是一件微不足道的事情。

最明智的做法是安装类似 Stylish 的东西并使用它来覆盖您真正想要的样式。


尝试使用用户脚本执行此操作的困难在于:

  1. 你不能使用 getComputedStyle() ,因为这只会返回已解析的适用样式。您不会在 Chrome 中看到“-moz”样式,也不会在 Firefox 中看到“-webkit”样式。

  2. 同样,document.styleSheets也只显示过滤掉外星浏览器特定规则的已解析样式规则。

  3. 您必须解析原始的 CSS 源文本。那就是textContent每个 <style>以及通过遵循 href 获得的 AJAX 嵌入文本每个 "text/css" <link> .

    这可能会变得棘手,如果您希望解决方案非常稳健,甚至不要考虑使用 RegEx。

  4. 跨域限制也会妨碍获取 <link>文本,但这可以通过使用 GM_xmlhttpRequest() 来减少.

  5. 一旦原始 CSS 被解析,您就可以像这样覆盖选定的 CSS 规则:

    Change Mozilla                      To CSS3                        
    ------------------------------      --------------------------
    -moz-border-radius-topright         border-top-right-radius     
    -moz-border-radius-bottomright      border-bottom-right-radius  
    -moz-border-radius-bottomleft       border-bottom-left-radius   
    -moz-border-radius-topleft          border-top-left-radius      
    -moz-border-radius                  border-radius               
    

关于javascript - 用于修复 css 的用户脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8719068/

相关文章:

javascript - 身份仿函数的 Sanctuary.Js 类型错误

javascript - Jasmine 可以在对象上创建新属性并随后删除它们吗?

javascript - jQuery promise 是否符合 Promises/A+

css - 在 div 中为 <h1> 添加下划线

javascript - 虽然的缺点!未定义的数组循环

javascript - 在多个li的html中搜索一个字符串

javascript - 纯javascript中的jquery position()

javascript - 使用 jQuery 检测单击了哪个选项卡

html - 使图像拉伸(stretch)到容器的边缘

javascript - 如何检测 textContent 何时溢出其父级