• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            我的玻璃盒子

            【原創】我的Firefox插件開發之旅(4)——XULRunner的一個例子

            上一節寫了一個Extension,添加了一個按鈕在FF3的工具欄上。接下來我準備在這個基礎上添加一個功能,點擊按鈕,讀取本地磁盤上一個文件的內容,并顯示出來。怎么做呢?用Javascript嗎?因為我最終的目標是從服務器上下載文件,也可能會傳輸本地文件到服務器上,用Javascript訪問本地文件有諸多限制,而且也無法完成復雜的功能。所以最好是能夠調用我編寫的 DLL那就最好不過了。怎么做呢?還是在Mozilla網站上找找看吧。

            在Mozilla網站上看到,可以自己編寫Component來完成一些自定義操作。需要首先安裝Gecko SDK(現在叫XULRunner SDK),Windows上有兩個版本,1.8是for FF1.5/2.0的,1.9是for FF3.0的,由于我機器上安裝的是FF3.0,那么就先下載1.9吧,與FF1.5/2.0兼容的問題以后再說。

            下載了XULRunner SDK 1.9,解壓到本地后,在環境變量里配置了PATH到xulrunner-sdk的bin目錄,以便可以在command prompt下直接運行xulrunner.exe。OK,環境配置完畢,下面來個寫個小例子吧。Mozilla提供了一個短小精悍的例子程序,在這里:https://developer.mozilla.org/en/Getting_started_with_XULRunner

            這篇文章一步一步教我們編寫一個HelloWorld程序,寫的很清楚。不過做完這個例子,我有幾個疑問:
            1、在上一節我們寫的Extension中,chrome.manifest這個文件是放在根目錄的(與chrome目錄同級),為什么這里把它放在了chrome目錄里面呢?能否保持和Extension相同?我簡單嘗試了一下,并修改了chrome.manifest里面content所指向的目錄,然后運行了一下,什么都沒發生,沒有看到正常運行時所彈出的對話框,看來還是解析不正確,是不是xulrunner必須要求chrome.manifest在chrome目錄下面呢?
            2、application.ini中App節的ID,和Extension的ID(通常是一個GUID)有無關聯呢?
            3、調用xulrunner.exe以后,會產生兩個目錄:extensions和updates,這兩個目錄是干什么用的呢?

            另外這里需要特別說明一點:在運行xulrunner去執行application.ini時,千萬不能丟掉.exe,即不能寫/>xulrunner application.ini,必須是/>xulrunner.exe application.ini,否則會彈出couldn't parse的錯誤提示,具體是什么原因我也不清楚。

            另外,這里還有一篇關于xulrunner的教程,解釋了一些概念性的東西:http://blogs.acceleration.net/ryan/archive/2005/05/06/1073.aspx

            寫完這個例子,感覺方向好像不太對,xulrunner好像主要還是做界面,怎么做組件呢?怎么訪問本地磁盤文件、甚至系統注冊表?在Mozilla的開發者頁面上又看到一個東東:XPCOM,開頭的一段介紹文字是這樣的:

            XPCOM is a cross platform component object model, similar to Microsoft COM. It has multiple language bindings, letting the XPCOM components be used and implemented in JavaScript, Java, and Python in addition to C++. Interfaces in XPCOM are defined in a dialect of IDL called XPIDL.

            XPCOM itself provides a set of core components and classes, e.g. file and memory management, threads, basic data structures (strings, arrays, variants), etc. The majority of XPCOM components is not part of this core set and is provided by other parts of the platform (e.g. Gecko or Necko) or by an application or even by an extension.

            大概的意思是說XPCOM類似于微軟的COM組件概念,它可以定義一些接口,可以在JS、Java、Python以及C++中使用。哈哈,看來這個才是我想要的東西。OK,那接下來我就來研究一下這個東東吧。下一節爭取能完成我一開始提到的功能。

            posted on 2008-11-10 11:54 深藍色系統 閱讀(16462) 評論(1)  編輯 收藏 引用 所屬分類: Firefox開發

            評論

            # re: 我的Firefox插件開發之旅(4)&mdash;&mdash;XULRunner的一個例子 2009-07-09 13:57 tmy13

            根據博主寫的也試著建立了個hello world的項目,不過有點疑問的是雖然能成功編譯了,也在firefox下運行了。不過到底如何才能使它成為一個firefox的插件呢?這個xulrunner到底是何用處的,想請博主指點下,謝謝了  回復  更多評論   

            # re: 【原創】我的Firefox插件開發之旅(4)&mdash;&mdash;XULRunner的一個例子 2016-06-12 23:08 偉迪

            您好 我這邊調用的是xulrunner-41.0b9.en-US.win64.sdk,請問這個需要怎么調用;1.8版本沒有問題  回復  更多評論   

            導航

            <2014年6月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345

            統計

            常用鏈接

            留言簿(75)

            隨筆分類

            隨筆檔案

            文章分類

            文章檔案

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            亚洲欧洲中文日韩久久AV乱码| 99精品伊人久久久大香线蕉| 亚洲国产天堂久久综合| 亚洲国产成人精品91久久久 | 亚洲精品WWW久久久久久| 三上悠亚久久精品| 久久久久无码国产精品不卡| A狠狠久久蜜臀婷色中文网| 久久久久亚洲av成人网人人软件| 97久久综合精品久久久综合 | 日本欧美久久久久免费播放网| 久久久中文字幕| 91精品国产高清久久久久久国产嫩草 | 久久人人爽人人爽人人片AV东京热| av无码久久久久不卡免费网站| 亚洲欧美另类日本久久国产真实乱对白| 国产精品毛片久久久久久久| 久久水蜜桃亚洲av无码精品麻豆| 一本久久a久久精品vr综合| 国产精品亚洲美女久久久| 久久综合色之久久综合| 亚洲伊人久久成综合人影院| 国产精品久久久久9999高清| 久久精品国产久精国产果冻传媒| 综合网日日天干夜夜久久| 久久精品国产清自在天天线| 美女久久久久久| 少妇久久久久久被弄到高潮 | 91亚洲国产成人久久精品| 国内精品欧美久久精品| 66精品综合久久久久久久| 午夜肉伦伦影院久久精品免费看国产一区二区三区| 久久久久亚洲av毛片大| 国产激情久久久久久熟女老人 | 国产精品久久久福利| 国产精品乱码久久久久久软件| 精品久久久久久久| 久久综合狠狠综合久久97色| 2021少妇久久久久久久久久| 久久Av无码精品人妻系列| 久久综合一区二区无码|