999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Firefox瀏覽器擴展開發原理

2018-12-08 09:29:34朱德平
數字技術與應用 2018年8期
關鍵詞:基本原理開發

朱德平

摘要:本文講述了Firefox瀏覽器擴展開發的原理,包括擴展API、后臺腳本與內容腳本、用戶界面、配置、權限與管理等內容。并講解了擴展開發的部分主要代碼范例。

關鍵詞:擴展;開發;基本原理;Firefox;瀏覽器

中圖分類號:TP311 文獻標識碼:A 文章編號:1007-9416(2018)08-0121-01

瀏覽器擴展的用途是為瀏覽器添加特性和功能。按用途大致分為三類:一是對瀏覽器本身的補充和增強。例如翻譯、廣告移除、網頁剪切和批注、開發和調試輔助等。二是為某一個或一類網站提供附加的服務。例如購物比價、視音頻地址解析及下載等。三是基于擴展的獨立應用。例如待辦事項和時間管理、網頁小游戲等。本文首先講述Firefox擴展開發的基本原理和部分主要代碼范例。

1 基本原理

Firefox擴展開發基于常規的HTML、CSS和JavaScript技術,和開發網頁所用的技術相同,另外添加了一組專用于擴展開發的技術特性,下面分別論述。

1.1 擴展API

Firefox為擴展提供了一組擴展API(WebExtensions API),作為擴展的運行時API,目前包含40余個功能模塊,每個模塊包含若干函數、屬性、事件和類型,提供一類功能。具體包括訪問和操縱瀏覽器的菜單、書簽、剪切板、下載、歷史、代理、cookies、本地存儲功能;瀏覽器用戶界面與擴展的綁定;權限和安全管理;擴展內部腳本、不同擴展、擴展與本地應用程序之間的通信;擴展安裝、移除管理等。所有的擴展API都放在browser名字空間下,每個子模塊在browser下又有自己的名字空間。擴展API中有許多異步函數,是基于Promise異步機制。WebExtensions API是跨瀏覽器的API,因此為Firefox開發的插件只需要進行少量修改,就可以在Google Chrome和Microsoft Edge中運行。

1.2 后臺腳本和內容腳本

Firefox擴展由JavaScript代碼以及附加的HTML、CSS等文件組成,JavaScript代碼主要有后臺腳本(background scripts)和內容腳本(content script)兩種。后臺腳本運行在獨立的進程內,當擴展啟動時,后臺腳本開始運行,首先執行擴展初始化、事件綁定等操作,隨后進入事件處理循環,當接受到停止運行事件時,腳本結束執行。后臺腳本可以使用所有的擴展API以及JavaScript語言規范內置的函數、對象等。但是后臺腳本不能對瀏覽器當前顯示的網頁進行操作,內容腳本可以像網頁腳本(網站網頁自帶的JavaScript代碼)一樣嵌入到網頁上下文中,利用標準的DOM API操縱網頁元素。 需要注意內容腳本只能看到一個“干凈的網頁DOM視圖”,意思一是內容腳本不能查看網頁腳本定義的JavaScript變量;二是如果網頁腳本重新定義了一個內置DOM屬性,內容腳本無法看到重新定義的屬性,只能看到原始的屬性,這種特性稱作“Xray vision”,是為了使高特權級代碼可以安全的訪問由低特權級代碼創建的對象。內容腳本和后臺腳本可以通過消息機制進行通信,互相傳輸數據。內容腳本只能直接使用擴展API的一個小的子集,但可以通過消息機制間接的使用其他的擴展API。

1.3 用戶界面

擴展可以通過向瀏覽器添加按鈕或者利用面板和網頁創建自定義界面的形式和用戶進行交互,具體共有11種形式,例如瀏覽器工具條按鈕、地址欄按鈕、側邊欄面板、上下文菜單項、選項頁面等。擴展展示給用戶的面板和頁面由HTML、CSS和JavaScript,在JavaScript中可以調用擴展API。

1.4 配置

每個擴展必須包含一個名字為manifest.json的配置文件,對擴展的各項功能進行集中裝配和配置,包括30余個配置參數,例如指定擴展調用的后臺腳本和內容腳本文件、組成用戶界面的HTML文件、按鈕等的圖標文件、鍵盤快捷鍵、權限管理以及擴展的名稱、作者、版本信息等。

1.5 權限管理

通過manifest.json中的permissions參數可以為擴展指定各類權限。權限分為下面幾種,一是主機權限,用于指定擴展通過XML Http Request不受跨域限制可以訪問的URL資源以及其它與URL資源訪問相關的權限。二是API權限,用于指定可以在當前擴展中使用的擴展API。三是activeTab權限,用于指定當用戶與擴展交互式,是否能以編程的方式動態將JavaScript和CSS注入當前活動選項卡中的網頁以及能否訪問選項卡的Tab.url,Tab.title和Tab.faviconUrl屬性。另外還可以設置剪切板和存儲權限。

2 代碼范例

下面列舉部分開發中常用操作的代碼范例。

2.1 Manifest.json主要配置

配置內容腳本,當用戶頁面訪問百度網站時,腳本content.js嵌入當前頁面執行。

"content_scripts": [

{ "matches": ["https://www.baidu.com/*"], "js": ["content.js"] }]

配置后臺腳本,當擴展啟動時,運行background.js代碼。

"background": {

"scripts": ["background.js"] }

在地址欄中添加擴展按鈕。

" page_action ": {

"default_icon": { "16": "icon 16.png", "32": "icon32.png" }

2.2 攔截瀏覽器發往百度網站的所有Http請求,由預先定義的handle函數處理

browser.webRequest.onBeforeRequest.addListener(

handle, {urls: ["https://www.baidu.com/"]} ) }

2.3 內容腳本和后臺腳本的通信

內容腳本中將數據data發往后臺腳本。

var port = browser.runtime.connect({name:""});

port.postMessage(data);

2.4 后臺腳本接受數據

后臺腳本監聽內容腳本的連接事件,當連接成功后,監聽內容腳本的消息到達事件,處理接受到的消息。

function connected(port) {

port.onMessage.addListener(function(data) {

console.log(data);

});}

browser.runtime.onConnect.addListener(connected);

3 結語

Firefox瀏覽器提供了強大的擴展API,使得用戶可以增加和修改瀏覽器功能,同時相比XUL/XPCOM、Add-on SDK等以前的擴展方式簡化了編程,又和其它主流瀏覽器擴展相兼容,極大的增強了Firefox瀏覽器的功能和提高了用戶體驗。

猜你喜歡
基本原理開發
發展經濟學基本原理
時代人物(2019年30期)2019-12-16 02:07:44
人臉識別技術的基本原理與應用
電子制作(2019年14期)2019-08-20 05:43:34
江西省“十二五”重點學科“馬克思主義基本原理”
高中歷史教學中對歷史圖片的開發及實際應用
考試周刊(2016年85期)2016-11-11 01:57:37
在線投稿與編輯系統的設計與開發
河南方言文化資源的保護及其開發利用的研究
遵義紅色旅游開發對策研究
基于J2EE和Ionic的ITer學習APP設計與開發
單片機在電子技術中的應用和開發
UPS電源的基本原理與維護
主站蜘蛛池模板: 精品国产美女福到在线直播| 国产成人AV男人的天堂| 激情乱人伦| 69av免费视频| 亚洲看片网| 国产午夜福利亚洲第一| 国产精品欧美在线观看| 亚洲综合激情另类专区| 一级香蕉人体视频| 伊人91在线| 成人另类稀缺在线观看| 欧美区国产区| 波多野结衣视频网站| 无码中文字幕乱码免费2| 精品伊人久久久香线蕉| 播五月综合| 色哟哟国产成人精品| 久久久亚洲色| 日韩精品无码免费专网站| 色成人亚洲| 国产jizzjizz视频| 自拍中文字幕| 欧美视频二区| 丁香婷婷综合激情| 中文字幕第4页| 91精品国产91久无码网站| 久久久久人妻一区精品色奶水| 中文字幕 欧美日韩| 色婷婷天天综合在线| 天天躁狠狠躁| 成人国产免费| 日韩精品专区免费无码aⅴ| 又黄又湿又爽的视频| 亚洲无码91视频| 欧美黄网在线| 夜夜高潮夜夜爽国产伦精品| 欧美在线黄| 亚洲精品国产成人7777| 久久这里只有精品免费| 中文字幕无码av专区久久| 亚洲国产精品日韩欧美一区| 欧美一级专区免费大片| 手机成人午夜在线视频| 亚洲AⅤ波多系列中文字幕| 国产小视频在线高清播放| 99热这里只有精品国产99| 国产aⅴ无码专区亚洲av综合网| 欧美人在线一区二区三区| 99精品欧美一区| 强乱中文字幕在线播放不卡| 成色7777精品在线| 免费看美女毛片| 日韩成人在线视频| 国产欧美精品午夜在线播放| 久久综合婷婷| 嫩草国产在线| www.91中文字幕| 伊人久久精品亚洲午夜| 国产91导航| 日韩欧美国产综合| 男人天堂亚洲天堂| 亚洲侵犯无码网址在线观看| 成人午夜在线播放| 69国产精品视频免费| 69免费在线视频| 国精品91人妻无码一区二区三区| 在线欧美a| 91av成人日本不卡三区| 欧美日韩国产系列在线观看| 精品乱码久久久久久久| 久久国语对白| 性欧美在线| 美女内射视频WWW网站午夜| 亚洲大尺码专区影院| 久久semm亚洲国产| 国产高清在线观看| 色天堂无毒不卡| 国内a级毛片| 国产午夜精品一区二区三| 鲁鲁鲁爽爽爽在线视频观看| 亚洲一区二区成人| 国产精品林美惠子在线播放|