2012-03-01 81 views

回答

2

通常的做法是create an XPCOM component:例子是過時的,你必須要考慮this爲好)實施nsIContentPolicy interface,並在content-policy類別註冊。將爲每次加載嘗試調用組件的shouldLoad()方法 - 您可以查看aContentLocationaRequestOrigin參數以決定是否要阻止請求。

當然,Adblock Plus過濾器也是如此,例如,阻止Facebook的上mydomain.com您使用此過濾器:

||facebook.com^$domain=mydomain.com 

Adblock Plus的allows other extensions to communicate with it。要添加一堆過濾器,您的擴展將在啓動時執行以下操作:

var filters = [ 
       "||facebook.com^$domain=mydomain.com", 
       "||twitter.com^$domain=mydomain.com" 
       ]; 
AdblockPlus.updateExternalSubscription("FooExtension", 
             "Filters from Foo Extension", 
             filters); 
+0

真正有用的信息。非常感謝。我會試一試。目前,我只是遵循https://developer.mozilla.org/en/XUL_School/Intercepting_Page_Loads#page-files – Eamorr 2012-03-02 11:39:34

+0

我必須做一個'var AdblockPlus = require('AdblockPlus')'? – Eamorr 2012-03-02 11:43:05

+0

@Eamorr:不,我鏈接的Adblock Plus文檔解釋了您如何訪問API。如果您使用的是附加SDK,那麼您還需要[chrome權限](https://addons.mozilla.org/en-US/developers/docs/sdk/1.5/dev-guide/module- development/chrome的.html)。 – 2012-03-02 11:50:04

相關問題