火狐拓展开发 基础知识
平時經常碰到一些零碎的知識,或者其他什么好文章/知識點/插件/庫等等,因為實在太多書簽已插亂...于是想著干脆寫個火狐小add-on。
首先找到了這里ADD-ON SDK:
Using the Add-on SDK you can create Firefox add-ons using standard Web technologies: JavaScript, HTML, and CSS. The SDK includes JavaScript APIs which you can use to create add-ons, and tools for creating, running, testing, and packaging add-ons.
使用Add-on SDK你可以用標準的web技術——javascript,html,css開發火狐add-ons。SDK包含了js API,供你創建add-ons,以及創建、運行、測試、打包add-on的工具(即cfx命令行,cfx run,cfx test,cfx xpi等)。
開發小組件(add-on,附件組件)過程中發現僅使用js,html,能夠完成的功能有限,尤其沒有辦法直接使用火狐的一些默認用戶界面,右鍵菜單(反正我是還沒有找到調用方法)。結果自己用html拼了一個出來,雖說其他一些圖形界面也能夠寫出來,但有點繞了遠路的感覺。做個小東西自己用用的話,差不多可以,但想增加一些比較高級(?)的功能的話會比較困難。以下是正文,火狐拓展開發介紹。
知識均來源于XUL|MDN。主要是一些概念的介紹。
?
Firefox and other Mozilla applications can be seen as composed of two different parts: a user interface layer that is distinct for each project, and a common platform on top of which the interface layer is built. The user interface is built with technology known as XUL, and the platform is known as XULRunner.
火狐以及其他MOzilla應用可以看作是由兩個部分組成:用戶界面層——每個項目各不相同,以及一個共同的平臺,界面均建立于它之上。用戶界面使用XUL技術,平臺則為XULRunner.
?
在介紹XUL與XULRunner之前,先了解一下add-on(附加組件)和extension(拓展)的區別:
An extension is a small application that adds something new to one or more Mozilla applications.
所有拓展都是附加組件,但附加組件也可以是主題、插件、或是語言包等。XUL教程主要講的是關于拓展開發,而主題、語言包的開發與它十分相似。而插件則完全不同,在教程里不會提到。
Extensions now exist in 3 different forms: Add-ons SDK extensions (also known as Jetpacks), bootstrapped extensions and traditional extensions. If you're only getting started developing add-ons, the Add-ons SDK provides a great way to quickly create simple ones and build on them. This tutorial focuses on traditional extensions, which are created differently. Bootstrapped extensions are a step above traditional ones in complexity, so you should go through this tutorial before giving them a try.
拓展現在有三種形式:Add-ons SDK 拓展、bootstrapped拓展以及傳統拓展。如果你是剛剛開始開發組件,add-on SDk提供了快速開發簡單組件的方法。XUL教程主要關注傳統拓展的開發,這也將相對比較復雜。bootstrapped拓展在難度上將更上一層,在嘗試之前,建議先看完此教程。
?
大致就是這么一回事了。
?
XUL(XML User Interface Language):Mozilla用于創建類似firefox之類應用的用戶界面 的基于XML的語言。
XUL十分強大。在用html邊看教程邊寫代碼時遇到的問題,XUL輕輕松松就解決了。
比如:
?
比如:drag and drop
被拖拽元素的一個半透明的表現將隨著鼠標移動。放置(drop)位置可以是另外一個應用。可以設置拖動時顯示的圖片,拖動效果:被拖動元素是copy/move/link.
?
也就是說平時用到的效果基本都能自己調用~提供了很多command,右鍵菜單寫個<menu></menu>,加上事件就好,一些默認事件可以調用cmd,cmd_copy,cmd_paste等。參見List of Commands.
?
順便說下add-on sdk.
開發語言:html,js,css,以及sdk提供的接口。
開發方法:限于目前我的了解。
主要文件:main.js.負責運行add-on的主腳本語言。
?負責與html/panel/widget等頁面內容交互的腳本。比如訪問打開的html頁面,一般需建一個page-mod對象。通過該對象與其對應的contentScriptFile:XX.js,之間通信(sdk提供的通信接口),來實現與頁面的交互。widget,panel同理。
?
以上。
轉載于:https://www.cnblogs.com/cydin/p/3353196.html
總結
以上是生活随笔為你收集整理的火狐拓展开发 基础知识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【delphi】Byte数组与Strin
- 下一篇: 1476. Lunar Code