如何创建一个将CSS注入页面的firefox插件?

时间:2013-04-26 18:56:43

标签: css firefox firefox-addon

我想使用firefox插件修改网站的页面CSS。我不想安装像greasemonkey这样的扩展程序并添加CSS。我想创建一个扩展。目标是有一个扩展,其唯一的功能是将CSS注入页面。

警告: 不要告诉我“你不需要扩展来改变CSS”。我已经知道了。 这个问题是关于构建扩展程序。谢谢。

2 个答案:

答案 0 :(得分:2)

基本上,您需要执行2项任务:

勾选以查看所有新页面的打开状态。

Here是如何做到这一点的一些例子。但它需要在所有浏览器xul窗口中添加脚本。这很简单:只需将窗口脚本添加到空的XUL叠加层并将其添加到插件清单中即可。

获得对DOM页面的访问权限后,您实际上可以

将样式表插入页面。

要实现此目的,您需要创建一个样式表容器:

// This may also be a data: or chrome: URL
var stylesheetURL = "http://example.com/style.css";
var container = document.createElementNS("http://www.w3.org/1999/xhtml","style");
container.setAttribute("id", "your-extension-stylesheets");
// You should remove this when deactivating extension
document.documentElement.appendChild(container);
var stylesheet = conteiner.sheet;
var addedIndex = stylesheet.insertRule("@import url('" + stylesheetURL + "');", stylesheet.cssRules.length);
// Use stylesheet.deleteRule(addedIndex) when is's no longer needed

答案 1 :(得分:0)

如果您只想覆盖特定网站上的CSS,则不需要扩展程序。

查看Firefox的用户CSS,它允许您指定额外的CSS来应用每个域。

例如,请参见超级用户How to override the CSS of a site in Firefox with userContent.css?