css - 通过 firefox 扩展将 CSS 文件注入(inject)网页

标签 css firefox-addon firefox-addon-sdk

我正在编写一个 Firefox 扩展,并且正在使用他们的附加 SDK;但我不知道如何将数据文件夹中的本地 CSS 文件注入(inject)网页。如果有一种方法可以通过 page_mod 包来实现,那就太好了。

最佳答案

自 Add-on SDK 1.14 起,在 page-mod 中有对此的实验性(API 可能会更改)支持模块:

var pageMod = require("sdk/page-mod").PageMod({
  include: "*",
  contentStyleFile: require("sdk/self").data.url("my-style.css")
});

参见 Modifying Web Pages Based on URL获取使用 page-mod 的详尽指南。

a page on the Addon SDK's wiki讨论当前实现的问题,尽管它似乎有点过时。

在底层它使用 nsIDOMWindowUtils .loadSheet() 添加样式表而不触及页面的 DOM。 (此 API 是在 Firefox 18 中添加的,请参阅 bug 737003 。在此之前,您必须使用 nsIStyleSheetService ,它与此类似,但不是特定于选项卡的。)


在此之前,您可以使用 page-mod 的内容脚本来插入链接或样式元素 (example)。 [编辑] 感谢 lwburk 的评论,这里有一个更详细的详细描述 Greasemonkey Hacks: Tips & Tools for Remixing the Web with Firefox By Mark Pilgrim: "Alter a Page's Style" section .

关于css - 通过 firefox 扩展将 CSS 文件注入(inject)网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8373678/

相关文章:

html - CSS 3D 变换属性

firefox - 如何在 Firefox 扩展中获取基本身份验证信息?

javascript - 音频标签在 Firefox 附加组件中不起作用

javascript - 在新选项卡中打开页面上的所有链接并跟踪这些选项卡

css - 屏幕尺寸和浏览器尺寸的关系

jquery - 如何查找 Jquery 是否在某处禁用 html 中的 anchor 标记

HTML 如何根据选定的单选按钮更改目标页面

在 Web 应用程序中将页面打印到不同的打印机

javascript - Firefox 扩展 : How to intercept the requested url conditionally and block it?

google-chrome-extension - Firefox 扩展 .xpi 文件结构 : description, 内容、创建和安装