亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

firefox 擴展開發技巧

2024-07-21 01:22:48
字體:
來源:轉載
供稿:網友

Firefox Extension
參考:http://developer.mozilla.org/en/Extensions
http://www.ibm.com/developerworks/cn/web/wa-lo-firefox-ext/

目錄結構:
chrome.mainfest        // 定義整個擴展的目錄結構
install.rdf        // 定義擴展的ID,名稱等等信息
chrome/
chrome/content/        // 定義擴展界面(.xul文件),定義擴展界面實現功能的邏輯(.js文件)
chrome/skin/        // 定義擴展界面上用到的圖片,屬性風格,皮膚文件等(.css,.ico,.png)
chrome/locale/
chrome/locale/en-US/        // 定義翻譯字符串(.dtd文件),屬性翻譯字符串(.properties文件)
chrome/locale/zh-CN/     // 定義翻譯字符串(.dtd文件),屬性翻譯字符串(.properties文件)
defaults/
defaults/preferences/    // 定義需要保存的信息默認值(.js文件)
components/        // 定義擴展邏輯用的方法接口(.xpt, .dll文件)

安裝擴展:
將上面目錄結構的文件打包成.zip文件,然后改后綴為.xpi,拖到firefox界面上就會彈出安裝界面安裝就可以了

chrome.mainfest詳讀

// 示例代碼詳解
# 在前面加"#"表示注釋
# 注冊chrome.manifest
# 指定將要讀取的修改內容的路徑,后面必須帶"/" 可以修改Toolbars, menu bars, progress bars,
# and window title bars are all examples of elements that are typically part of the chrome

content    my_extension_name    chrome/content/

# 指定將要加載的皮膚路徑,后面必須帶"/"
skin    my_extension_name        classic/1.0     chrome/skin/

# 指定將要讀取的語言路徑,后面必須帶"/"
locale    my_extension_name        en-US            chrome/locale/en-US/
locale    my_extension_name        zh-CN            chrome/locale/zh-CN/

# 將后面的文件添加到前面的文件里
overlay    chrome://browser/content/browser.xul    chrome://my_extension_name /content/statusbarOverlay.xul

# 都是可選參數
# style         chrome://URI-to-style                                 chrome://stylesheet-URI [flags]
# override     chrome://package/type/original-uri.whatever     new-resolved-URI [flags]
# resource     aliasname                                             uri/to/files/ [flags]
# application = app-ID
# appversion 操作符 version    (操作符為"=", "<", ">", "<=", ">=")
# os = WINNT(操作系統)
# osversion >= 10.5
# platform格式如下:
# content     global-platform jar:toolkit.jar!/toolkit/content/global-platform/     platform

install.rdf詳讀    
參考:http://developer.mozilla.org/en/Building_an_Extension

<?xml version="1.0"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
<Description about="urn:mozilla:install-manifest">

// 下面的參數是必須要添加的
// <em:id>    當前平臺下生成的GUID
// <em:version>      由"."連接的數字
// <em:type>    指定的數字.
        // 2代表Extensions,4代表Themes,8代表Locale,32代表Multiple Item Package
// <em:targetApplication>    指定這個擴展是為那個應用程序使用的
// 格式如下:    <em:id>指定的應用程序的GUID;
//        <em:minVersion>,<em:maxVersion>分別為應用程序的最小最大版本號
//<em:targetApplication>
//  <Description>
//   <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
//    <em:minVersion>1.5</em:minVersion>
//    <em:maxVersion>2.0.0.*</em:maxVersion>
//  </Description>
//</em:targetApplication>

// <em:name>    顯示在應用程序界面上的擴展名稱

// 下面的參數是可選擇添加的
// <em:description>        描述該擴展的功能
// <em:creator>        創始人
// <em:homepageURL>        主頁
// <em:updateURL>        更新主頁
// <em:optionsURL>
// <em:aboutURL>
// <em:iconURL>
// <em:developer>        開發者
// <em:translator>        翻譯者
// <em:contributor>         捐助者
// <em:targetPlatform>    目標程序的系統平臺
// <em:localized>        集中顯示一些擴展的信息
// <em:locale>    指定將來用那種語言來顯示信息(必要),在使用了<em:localized>后用

// 例子:
<em:id>{69354808-F0D7-40CC-BB5F-8C1B8F57CECC}</em:id>
<em:version>0.91</em:version>
<em:type>2</em:type>
<em:name>statusbar settor</em:name>

// 目標程序為firfox
<em:targetApplication>
    <Description>
        <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> //firefox的GUID
        <em:minVersion>1.5</em:minVersion>
        <em:maxVersion>2.0.0.*</em:maxVersion>
    </Description>
</em:targetApplication>

// 添加可選的信息
// <creator>Federico Parodi</creator>
// <creator>Stefano Verna</creator>
// <creator>Nils Maier</creator>
// <developer>Federico Parodi</developer>
// <developer>Stefano Verna</developer>
// <developer>Nils Maier</developer>
// <aboutURL>chrome://dta/content/about/about.xul</aboutURL>
// <iconURL>chrome://dta/skin/common/icon.png</iconURL>
// <homepageURL>http://downthemall.net/</homepageURL>
// <optionsURL>chrome://dta/content/preferences/prefs.xul</optionsURL>

</Description>
</RDF>

chrome 詳解:
1 chrome/content/
content這個文件夾里的文件類型主要包括.js和.xul兩種
.xul文件主要用來實現界面布局的,當然也可以實現簡單的邏輯操作,建議所有邏輯都放到相應的.js里去處理,下面給出實例代碼statusbarOverlay.xul:
<?xml version="1.0" encoding="UTF-8"?>

// 定義xul中用到的多語言字符串
<!DOCTYPE overlay SYSTEM "chrome:// my_extension_name/locale/statusbarOverlay.dtd">

// 所有的.xul文件都要加的項,id可以隨便設置的
<overlay id="bc_ext_overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

    //申明要用到的.js文件
    <script src=" statusbarOverlay.js"/>   
    //申明要用到的屬性多語言字符串
    <stringbundleset id="stringbundleset">
        <stringbundle id="ext-strings" src="chrome:// my_extension_name/locale/ statusbarOverlay.properties"/>
    </stringbundleset>
//添加xul元素到firefox界面上
//相關xul元素特性請查看xul教程
//參考:http://developer.mozilla.org/en/XUL_Tutorial

<popup id="contentAreaContextMenu">

<menuitem image="chrome://my_extension_name/skin/download_all.png"  class="menuitem-iconic" id=" download_all_item"   label="&download_all_text;"

insertafter="context-selectall" oncommand=" onCmdDownloadAll(event)"/>

<menuitem image="chrome:// my_extension_name/skin/download_link.png" class="menuitem-iconic" id="download_link_item"  label="&download_link_text;"

accesskey="&download_link_text.accesskey;" insertafter="context-selectall" oncommand="onCmdDownloadSingleLink(event)"/>

<menuseparator id="seperator_1" insertafter="context-selectall" />

</popup>
</overlay>

.js文件主要用來相應.xul里邏輯處理,下面給出實例代碼statusbarOverlay.js:
參考javescription腳本語法
onLoad: function()
{
    // initialization code
    this.initialized = true;
    this.strings = document.getElementById("bc_ext-strings");
    document.getElementById("contentAreaContextMenu").addEventListener("popupshowing", onContentPopupMenu, false);  
},
onCmdDownloadSingleLink: function(e)
{
alert(“download single link”);
},

onCmdDownloadAll: function(e)
{
alert(“download all link”);
}

window.addEventListener("load", function(e) { onLoad(e); }, false);


2 chrome/skin/
存放.xul中用到的圖片,屬性風格,皮膚文件等(.css,.ico,.png)

3 chrome/locale/
chrome/locale/en-US/        // 定義翻譯字符串(.dtd文件),屬性翻譯字符串(.properties文件)
chrome/locale/zh-CN/     // 定義翻譯字符串(.dtd文件),屬性翻譯字符串(.properties文件)
.dtd文件中定義要翻譯的字符串
示例代碼:
在zh-CN文件夾中的statusbarOverlay.dtd
<!ENTITY download_link_text "下載此連接">
<!ENTITY download_all_text "下載全部連接">
在en-US文件夾中的statusbarOverlay.dtd
<!ENTITY download_link_text "download this link">
<!ENTITY download_all_text "download all links">

.properties文件中保存著要保存的屬性的多語言字符
示例代碼:
在zh-CN文件夾中的statusbarOverlay.properties
extensions.{69354808-F0D7-40CC-BB5F-8C1B8F57CECC}.description=常用來下載http鏈接。
在en-US文件夾中的statusbarOverlay.properties
extensions.{69354808-F0D7-40CC-BB5F-8C1B8F57CECC}.description=it used to download http links.

defaults 詳解
4 defaults/preferences/     // 定義需要保存的信息默認值(.js文件)
.js文件中描述的是需要永久保存起來的變量的值,每次啟動時會載入.js中字段中保存的值來初始化.xul文件中的元素
示例代碼:
// 給變量定義默認值
pref("login.time","");
pref("username, "ghostjeky");
pref("extensions.{69354808-F0D7-40CC-BB5F-8C1B8F57CECC}.description", "chrome://my_extension/locale/statusbarOverlay.properties");//引用多語言屬性字符串

5 components/        // 定義擴展邏輯用的方法接口(.xpt, .dll文件)

6 開發擴展時常用的幾個擴展
DOM Inspector 主要用來檢測目標位置的元素的id,例如:你想在主菜單-》工具-》選項菜單的后面再增加一個菜單,則只要用DOM Inspector檢測出選項菜單的id為

menu_preferences,則你的xul就可以這么寫<menuitem id=”myid” insertafter=” menu_preferences” label=”mymenuitem”/>
下載地址:https://addons.mozilla.org/zh-CN/firefox/addon/6622
Extension Developer's Extension 主要用來測試你寫的那段javascript代碼是不是能夠正確執行,預覽xul代碼是不是你想要的布局.
在about:config中設置(只有安裝了這個擴展才有的配置項)
browser.dom.window.dump.enabled  = true //允許使用 dump() 語句向標準控制臺輸出信息,真正能看到dump()語句的輸出還有使用-console參數啟動firefox
下載地址:https://addons.mozilla.org/zh-CN/firefox/addon/7434
Javascript debugger 主要用來調試js代碼用的,但要能在里面找到你寫的js文件前提是你的js已經正確加載了,先將Debug菜單下面的Exclude Browser Files前面的勾去掉
下載地址:https://addons.mozilla.org/zh-CN/firefox/addon/216
Firebug 聽很多人說很好用 調試js,查找錯誤,但我一直沒有領略到它的好處,只是用來查找js的錯誤
下載地址:https://addons.mozilla.org/zh-CN/firefox/addon/1843

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线激情影院一区| 久久精品中文字幕| 日韩在线观看高清| 欧美与欧洲交xxxx免费观看| 97在线视频观看| 成人在线观看视频网站| 久久久久999| 欧美激情亚洲一区| 国产极品jizzhd欧美| 国产精品2018| 亚洲天堂2020| 精品亚洲精品福利线在观看| 亚洲人永久免费| 欧美激情va永久在线播放| 亚洲国产中文字幕久久网| 中文字幕精品久久| 日韩高清a**址| 91精品在线一区| 青草青草久热精品视频在线观看| 久久久久国产视频| 揄拍成人国产精品视频| 91免费的视频在线播放| 在线成人免费网站| 亚洲精品国产精品自产a区红杏吧| 日本精品免费观看| 久久久视频精品| 久久久影视精品| 国产精品美女在线| 成人午夜两性视频| 国产成人一区二区三区小说| 欧美精品情趣视频| 日本人成精品视频在线| 欧美色欧美亚洲高清在线视频| 欧美在线视频免费播放| 亚洲图片制服诱惑| 91欧美精品午夜性色福利在线| 欧美日本在线视频中文字字幕| 欧美丰满少妇xxxxx做受| 欧美一级大片在线免费观看| 2019中文字幕免费视频| 国产精品一二三视频| 国产原创欧美精品| 国产精品劲爆视频| 欧美性色xo影院| 精品夜色国产国偷在线| 欧美成人一区在线| 亚洲人成网在线播放| 91久久精品国产| 国产精品视频男人的天堂| 久久精品人人爽| 欧美激情亚洲自拍| 亚洲视频在线观看网站| 奇米四色中文综合久久| 亚洲色图偷窥自拍| 成人欧美一区二区三区在线| 欧美性xxxx极品高清hd直播| 亚洲综合日韩在线| 日韩a**中文字幕| xvideos亚洲人网站| 欧美精品videosex极品1| 欧美视频中文字幕在线| 色黄久久久久久| 国产婷婷成人久久av免费高清| 欧美性猛交xxxx乱大交| 91性高湖久久久久久久久_久久99| 欧美一级高清免费| 夜夜躁日日躁狠狠久久88av| 日韩免费黄色av| 国产精品丝袜白浆摸在线| 欧美另类精品xxxx孕妇| 国产精品久久久久久久久久久久| 日韩精品在线影院| www.久久撸.com| 日韩中文字幕视频在线观看| 日韩av中文字幕在线播放| 亚洲xxxx3d| 欧美日韩国产一区二区| 91欧美激情另类亚洲| 久久精品夜夜夜夜夜久久| 久久久亚洲天堂| 国产精品h在线观看| 欧美成人精品在线视频| 不卡伊人av在线播放| 国产v综合v亚洲欧美久久| 欧美成人小视频| 国产在线观看91精品一区| 久久久久久久久久国产| 欧美激情日韩图片| 91视频国产一区| 欧美孕妇性xx| 欧美黄色片免费观看| 亚洲在线免费视频| 国产午夜精品美女视频明星a级| 欧美午夜宅男影院在线观看| 91久久久在线| 久久天堂av综合合色| 日韩不卡中文字幕| 欧美一级免费看| 国产视频福利一区| 久久久女女女女999久久| 亚洲一区中文字幕在线观看| 国产精品视频中文字幕91| 国产精品国模在线| 欧美亚洲视频在线观看| 国产精品视频在线播放| 国产精品福利在线观看| 精品国产乱码久久久久久虫虫漫画| 色多多国产成人永久免费网站| 成人www视频在线观看| 欧美在线播放视频| 中文字幕精品一区二区精品| 久久久国产精品视频| 亚洲网在线观看| 粗暴蹂躏中文一区二区三区| 一区二区三区精品99久久| 国产欧美日韩综合精品| 狠狠爱在线视频一区| 欧美激情一区二区久久久| 97精品在线视频| 精品自拍视频在线观看| 欧美激情精品久久久久久大尺度| 国产精品久久久久久超碰| 亚洲国产高清自拍| 欧美精品成人在线| 中文字幕精品久久| 高清一区二区三区日本久| 亚洲美女福利视频网站| 2025国产精品视频| 狠狠操狠狠色综合网| 欧美精品www在线观看| 一区二区三区回区在观看免费视频| 久久天天躁狠狠躁老女人| 欧美性猛交xxxx乱大交3| 日韩视频一区在线| 久久精品国产一区二区三区| 成人久久久久久久| 亚洲国产高潮在线观看| 亚洲精品中文字幕av| 欧美丰满老妇厨房牲生活| 亚洲香蕉伊综合在人在线视看| 国产精品免费福利| 欧美中文字幕在线| 一区二区三区视频免费在线观看| 欧美成人手机在线| 国内成人精品视频| 色悠悠久久88| 日韩中文字幕国产| 国产aⅴ夜夜欢一区二区三区| 欧美风情在线观看| 精品亚洲一区二区| 尤物99国产成人精品视频| 国产成人高潮免费观看精品| 91免费在线视频网站| 日本a级片电影一区二区| 欧美自拍视频在线| 中文字幕视频一区二区在线有码| 亚洲国产古装精品网站| 欧洲亚洲妇女av| 亚洲欧美一区二区三区情侣bbw| 欧美福利视频在线观看| 亚洲欧美激情另类校园| 欧美一级片一区| 日韩视频免费在线| 亚洲一区二区在线|