MDA/MDD/TDD/DDD/DDDDDDD
          posts - 536, comments - 111, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          firefox擴展開發技術

          Posted on 2008-09-02 01:27 leekiang 閱讀(583) 評論(0)  編輯  收藏 所屬分類: firefox
          1,XPCOM

          XPCOM(Cross Platform Component Object Model)是一種跨平臺組件模型,是Mozilla技術的核心。其原理與微軟的COM技術類似,但與COM不同的是,XPCOM是一種跨平臺技術,并支持多種語言綁定(Language Bindings)。也就是說,我們可以使用C++、JAVA、JavaScript、Python、Ruby、Perl等語言來編寫組件。而XPCOM的接口(Interface)是用一種叫做XPIDL的IDL(Interface Description Language)來定義的。1

          XPCOM 自身提供了一套核心的組件和類,用于諸如內存管理,線程,基本數據結構(strings, arrays, variants)等 。但是大部分的XPCOM組件并不是這個核心庫提供的,而是由很多第三方的平臺(例如Gecko或者Necko)提供,或者由一個應用,甚至一個擴展提供。

          2,RDF

          教程http://www.w3school.com.cn/rdf/

          3,開發插件實在是很痛苦的一件事情,因為他需要用到Firefox的chrome系統,而每次更新了代碼之后,都需要重新載入chrome才能起作用。 一般情況下要重啟chrome就需要重新啟動firefox,還好有人已經發現這種痛苦,所以開發了一個Extension Developer Manager,里面提供了好幾個工具,用的最多的是reload chrome,用來在不重啟firefox的情況下,重新載入chrome,第二個是javascript shell,他可以訪問任意一個當前的firefox窗口。而要完成插件開發,一般還要用到Console,因為很多調試信息都需要通過這看,如果沒這玩 意,那估計每次都得用alert了。至于DOM Inspector一般用不上,因為如果你要象greesemonkey那樣,獲取當前頁面的HTML DOM的話,一般都只能通過事件來實現,然后hack到她的appcontent里面,這東西在DOM Inspector里面沒有,所以,你通過這種方式修改了DOM樹,通過DOM Inspector是看不出來的,而為了驗證你有沒有修改成功,現在我的方法就是靠javascript shell。
          ??????? 關于DOM,我搞了足足兩天,才算搞出個所以然來,由于firefox是用XUL寫的,而XUL也定義了DOM,所以,一般情況下你在擴展里頭,或者 javascript shell里面通過document獲取的僅僅是XUL的DOM,要獲取browser里面的DOM,我現在探索出來的有兩種,一種是 greesemonkey那樣,用事件,每次都監察DOMContentLoad事件,這個方法很危險,例如如果一個網頁他有多個frame,那么這個事 件就會發生多次,而由于greesemonkey只是在加載的時候用user script對DOM做一次處理,所以這個問題不是特別大。不過,如果我要做的是能夠多次操作DOM樹,所以,就必須要得到當前窗口的當前正在顯示的 DOM,為了獲取這冬冬,我足足用了2天,google了所有能想到的關鍵詞,把XUL planet和MDC上面的文章都翻了個遍,最后終于在moznet的irc上面問到人了,原來要得到這東西根本不需要用事件,只要通過 content.document就可以得到了。實在不容易啊。

          上面全部抄自http://blog.csdn.net/nickcen/archive/2006/07/15/923252.aspx

          4,用7zip壓縮為zip,然后改后綴為xpi


          系列文章http://hi.baidu.com/lovemyselfbest/blog/item/0bf363ee1ed5e1feb3fb9546.html

          http://www.blueidea.com/tech/web/2007/4979.asp

          基于 Mozilla 的擴展開發

          http://xuming.net/2008/07/firefox-extension-2.html

          http://www.blueidea.com/tech/web/2007/4979.asp


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 乌苏市| 佛坪县| 海口市| 阳城县| 安义县| 余干县| 香格里拉县| 英山县| 南平市| 南康市| 马边| 固安县| 威信县| 永和县| 邢台县| 驻马店市| 闽侯县| 满城县| 静宁县| 华阴市| 应城市| 阿合奇县| 双江| 晋江市| 佳木斯市| 都昌县| 延边| 军事| 通化县| 错那县| 亚东县| 长宁区| 宜宾县| 灵川县| 枝江市| 芦山县| 花莲市| 白玉县| 台湾省| 武安市| 正蓝旗|