2011-12-04 46 views

回答

6

作为添加SDK 1.14有实验(API可能更改)支持这个功能的page-mod模块:

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

的精心指导使用页面MOD见Modifying Web Pages Based on URL

a page on the Addon SDK's wiki讨论与当前实施问题,虽然它似乎有点过时。

在引擎盖下,它使用nsIDOMWindowUtils .loadSheet()添加样式表而不触及页面的DOM。 (这个API是在Firefox 18中添加,看到bug 737003。在这之前,你必须使用nsIStyleSheetService这是类似的,但不是选项卡专用。)


在这之前,你可以使用页面MOD的内容脚本插入链接或样式元素(example)。感谢lwburk的评论,这里有更详细的详细描述Greasemonkey Hacks: Tips & Tools for Remixing the Web with Firefox By Mark Pilgrim: "Alter a Page's Style" section

+0

这是不可能的,我,因为我是用的AppBuilder SDK – italiano40

+1

@ italiano40使用XPCOM:你继续引用“ appbuilder SDK“。如果您的意思是附加SDK,请使用正确的术语。尽管它是一个高级主题,并且会使向前兼容性无效,从而保证了附加SDK通常提供的功能,但可以在附加SDK中使用XPCOM组件('require('chrome')')。 – Nickolay

+1

参见:http://books.google.com/books?id=KWRE2C_S4YsC&pg=PA19&lpg=PA19&dq=mark+pilgrim+add+Global+Style&source=bl&ots=SnfX5Ad2WO&sig=CKoF9A0Ala96vphTeU4mK2dbMe4&hl=en&ei=GJ3iTpeJKKK2sQLBkMDvBQ&sa=X&oi=book_result&ct=result&resnum= 1&ved = 0CCQQ6AEwAA#v = onepage&q&f = false –

1

插入来自main.js CSS现在可以使用“页面-MOD”:

var data = require("sdk/self").data; 
var pageMod = require("sdk/page-mod"); 

pageMod.PageMod({ 
    include: "*.org", 
    contentStyleFile: data.url("my-page-mod.css") 
}); 
+0

感谢您提及此!我更新了我的答案,以获得更新版本的Addon SDK。 – Nickolay