1

I want to modify page CSS of a website, with a firefox addon. I do not want to install an extension like greasemonkey and add CSS. I want to create an extension. The objective is to have an extension whose sole function is to inject CSS into a page.

WARNING: Don't tell me "you don't need an extension to change CSS". I already know that. This question is about building an extension. Thank you.

4

2 回答 2

2

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

制作一个钩子来观看所有打开的新页面。

以下是一些有关如何执行此操作的示例。但这需要向所有浏览器 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
于 2013-04-28T12:31:42.110 回答
0

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

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

例如,请参阅如何使用 userContent.css 在 Firefox 中覆盖网站的 CSS?在超级用户。


于 2013-04-26T19:01:16.170 回答