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

首頁 > 編程 > JavaScript > 正文

JavaScript開發Chrome瀏覽器擴展程序UI的教程

2019-11-20 10:02:35
字體:
來源:轉載
供稿:網友

基本知識
1、插件文件結構
1.1、manifest.json
每一個擴展、可安裝的WebApp、皮膚,都有一個JSON格式的manifest文件,里面存放重要的插件相關信息。

一個最基本的配置例子:

{  "name": "browser action demo",  "version": "1.0",  "permissions": [    "tabs", "http://*/*", "https://*/*"  ],  "browser_action": {    "default_title": "開關燈",    "default_icon": "icon.png",    "default_popup": "popup.html"  },  "background": {    "page": "background.html"   },  "manifest_version": 2}

1.2、popup
插件的彈窗,上面配置中的browser_action中default_popup就是這個頁面。

1.3、background page
絕大多數應用都包含一個背景頁面(background page),用來執行應用的主要功能。

1.4、Content scripts
通過content script可以使應用和web頁面交互,content script是指能夠在瀏覽器已經加載的頁面內部運行的Javascript腳本。可以將content script看做是網頁的一部分,而不是它所在的應用的一部分。

2、文件之間的交互
popup彈窗中可以直接調用背景頁面中的函數。

Content script可以讀取并修改當前web頁面的dom樹,但是它并不能修改它所在應用的背景頁面(background)的dom樹。

Content script與應用之間的交互:可以互相發送消息

3、為web頁面注入JS(Content scripts)文件:
方法一,在manifest.json文件中配置:

"content_scripts": [  {   "matches": ["http://www.google.com/*"],   "css": ["mystyles.css"],   "js": ["jquery.js", "myscript.js"]  } ],

方法二,通過executeScript():

向頁面注入JavaScript 腳本執行。

chrome.tabs.executeScript(integer tabId, object details, function callback)chrome.tabs.executeScript(tabId, {file: "func.js", allFrames: true});

UI外觀
1、browser action:
在chrome主工具條的地址欄右側增加一個圖標。

注意:Packaged apps不能使用browser actions

1.1、manifest.json 中配置
注冊browser action:

{ "name": "My extension", ... "browser_action": {  "default_icon": "images/icon19.png", // optional   "default_title": "Google Mail",   // optional; shown in tooltip   "default_popup": "popup.html"    // optional  }, ...}

1.2、配置項說明
(1)default_icon
圖標 19 *19px

修改browser_action的manifest中 default_icon字段,或者調用setIcon()方法。

chrome.browserAction.setIcon(object details)

設置browser action的圖標。圖標可以是一個圖片的路徑或者是從一個canvas元素提取的像素信息.。無論是圖標路徑還是canvas的imageData,這個屬性必須被指定。

(2)default_title
修改browser_action的manifest中default_title字段,或者調用setTitle()方法。你可以為default_title字段指定本地化的字符串;點擊Internationalization查看詳情。

chrome.browserAction.setTitle(object details)

設置browser action的標題,這個將顯示在tooltip中。

(3)Badge
Browser actions可以選擇性的顯示一個badge― 在圖標上顯示一些文本。Badges 可以很簡單的為browser action更新一些小的擴展狀態提示信息。

因為badge空間有限,所以只支持4個以下的字符。

設置badge文字和顏色可以分別使用setBadgeText()andsetBadgeBackgroundColor()。

chrome.browserAction.setBadgeText(object details)

設置browser action的badge文字,badge 顯示在圖標上面。

setBadgeBackgroundColorchrome.browserAction.setBadgeBackgroundColor(object details)

設置badge的背景顏色。

(4)default_popup
Popup 氣泡提示

修改browser_action的manifest中default_popup字段來指定HTML文件, 或者調用setPopup()方法。

chrome.browserAction.setPopup(object details)

設置一個點擊browser actions時顯示在popup中的HTML。

1.3、提示
為了獲得最佳的顯示效果, 請遵循以下原則:

確認 Browser actions 只使用在大多數網站都有功能需求的場景下。
確認 Browser actions 沒有使用在少數網頁才有功能的場景, 此場景請使用page actions。
確認你的圖標尺寸盡量占滿19x19的像素空間。 Browser action 的圖標應該看起來比page action的圖標更大更重。
不要嘗試模仿Google Chrome的扳手圖標,在不同的themes下它們的表現可能出現問題,,并且擴展應該醒目些。
盡量使用alpha通道并且柔滑你的圖標邊緣,因為很多用戶使用themes,你的圖標應該在在各種背景下都表現不錯。
不要不停的閃動你的圖標,這很惹人反感。

2、右鍵菜單
您可以選擇針對不同類型的對象(如圖片,鏈接,頁面)增加右鍵菜單項。

您可以根據需要添加多個右鍵菜單項。一個擴展里添加的多個右鍵菜單項會被Chrome自動組合放到對應擴展名稱的二級菜單里。

右鍵菜單可以出現在任意文檔(或文檔中的框架)中,甚至是本地文件(如file://或者Chrome://)中。若想控制右鍵菜單在不同文檔中的顯示,可以在調用create()和update()時指定documentUrlPatterns。

2.1、manifest.json 中配置
在清單中聲明“contentMenus”權限。同時,您應該指定一個16x16的圖標用作右鍵菜單的標識。例如:

{    "name": "My extension",    ...    "permissions": [     "contextMenus"    ],    "icons": {     "16": "icon-bitty.png",     "48": "icon-small.png",     "128": "icon-large.png"    },    ...}

3、桌面通知
通知用戶發生了一些重要的事情。桌面通知會顯示在瀏覽器窗口之外。 下面的圖片是通知顯示時的效果,在不同的平臺下,通知的顯示效果會有些細微區別。

直-接使用一小段 JavaScript 代碼創建通知,當然也可以通過擴展包內的一個單獨HTML頁面。

3.1、manifest.json 中配置

{ "name": "My extension", ... "permissions": [  "notifications" ], ...}

3.2、與擴展頁交互:
使用 getBackgroundPage() 和 getViews()在通知與擴展頁面中建立交互

// 在通知中調用擴展頁面方法...chrome.extension.getBackgroundPage().doThing();// 從擴展頁面調用通知的方法...chrome.extension.getViews({type:"notification"}).forEach(function(win) { win.doOtherThing();});

4、Omnibox
omnibox 應用程序界面允許向Google Chrome的地址欄注冊一個關鍵字,地址欄也叫omnibox

必須在 manifest 中包含omnibox 關鍵字段。需要指定像素為16x16的圖標,以便當用戶輸入關鍵字時,在地址欄中顯示。

4.1、manifest.json 中配置

{ "name": "Aaron's omnibox extension", "version": "1.0", "omnibox": { "keyword" : "aaron" },  "icons": {   "16": "16-full-color.png"  },  "background_page": "background.html"}

Chrome 自動創建灰度模式16x16像素的圖標。你應該提供全色版本圖標以便可以在其他場景下使用。

5、選項頁
為了讓用戶設定你的擴展功能,你可能需要提供一個選項頁。如果你提供了選項頁,在擴展管理頁面 chrome://extensions上會提供一個鏈接。點擊選項鏈接就可以打開你的選項頁。

5.1、manifest.json 中配置

{ "name": "My extension", ... "options_page": "options.html", ...}

6、覆寫特定頁
使用替代頁,可以將Chrome默認的一些特定頁面替換掉,改為使用擴展提供的頁面。

6.1、manifest.json 中配置

{ "name": "My extension", ... "chrome_url_overrides" : {  "pageToOverride": "myPage.html" }, ...}

7、Page Actions
使用page actions把圖標放置到地址欄里。

想讓擴展圖標總是可見,則使用browser action。

打包的應用程序不能使用page actions。

7.1、manifest.json 中配置

{ "name": "My extension", ... "page_action": {  "default_icon": "icons/foo.png", // optional   "default_title": "Do action",  // optional; shown in tooltip   "default_popup": "popup.html"  // optional  }, ...}

7.2、配置項說明
同browser actions一樣,page actions 可以有圖標、提示信息、 彈出窗口。但沒有badge

使用方法 show() 和 hide() 可以顯示和隱藏page action。缺省情況下page action是隱藏的。當要顯示時,需要指定圖標所在的標簽頁,圖標顯示后會一直可見,直到該標簽頁關閉或開始顯示不同的URL (如:用戶點擊了一個連接)

7.3、提示
要只對少數頁面使用page action;
不要對大多數頁面使用它,如果功能需要,使用 browser actions代替。
沒事別總讓圖標出現動畫,那會讓人很煩。
8、主題
主題是一種特殊的擴展,可以用來改變整個瀏覽器的外觀。主題和標準擴展的打包方式類似,但是主題中不能包含JavaScript或者HTML代碼。

8.1、manifest.json 中配置

{ "version": "2.6", "name": "camo theme", "theme": {  "images" : {   "theme_frame" : "images/theme_frame_camo.png",   "theme_frame_overlay" : "images/theme_frame_stripe.png",   "theme_toolbar" : "images/theme_toolbar_camo.png",   "theme_ntp_background" : "images/theme_ntp_background_norepeat.png",   "theme_ntp_attribution" : "images/attribution.png"  },  "colors" : {   "frame" : [71, 105, 91],   "toolbar" : [207, 221, 192],   "ntp_text" : [20, 40, 0],   "ntp_link" : [36, 70, 0],   "ntp_section" : [207, 221, 192],   "button_background" : [255, 255, 255]  },  "tints" : {   "buttons" : [0.33, 0.5, 0.47]  },  "properties" : {   "ntp_background_alignment" : "bottom"  } }}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美另类老肥妇| 欧美诱惑福利视频| 91亚洲午夜在线| 久久精品成人欧美大片| 国产精品久久久久久久一区探花| 午夜精品蜜臀一区二区三区免费| 国产亚洲人成a一在线v站| 久久久www成人免费精品| 在线亚洲欧美视频| 日韩精品中文字幕久久臀| 日韩激情av在线播放| 国产精品狠色婷| 亚洲高清色综合| 欧美巨大黑人极品精男| 久久99久久久久久久噜噜| 国产一区深夜福利| 亚洲跨种族黑人xxx| 国产精品视频网址| 中文字幕九色91在线| 黑人极品videos精品欧美裸| 在线日韩精品视频| 伦伦影院午夜日韩欧美限制| 最新69国产成人精品视频免费| 欧美黄色小视频| 亚洲色图五月天| 亚洲一区二区三区在线免费观看| 欧美电影免费在线观看| 久久在线精品视频| 国产精品久久久久久久久久久新郎| 日韩成人在线观看| 久久天天躁日日躁| 在线电影欧美日韩一区二区私密| 国产日韩在线一区| 国产视频精品一区二区三区| 亚洲精品女av网站| 久久精品91久久久久久再现| 国产精品视频永久免费播放| 成人激情综合网| 在线日韩中文字幕| 久久国产精品偷| 亚洲视频在线观看网站| 欧美成人免费一级人片100| 欧美日韩性视频| 欧美黑人极品猛少妇色xxxxx| 欧美性xxxx极品hd满灌| 日韩人体视频一二区| 国产裸体写真av一区二区| 国产一区二区动漫| 欧美日韩国产在线| 欧美性猛交xxxx黑人猛交| 国产精品久久久91| 日韩风俗一区 二区| 久久在精品线影院精品国产| 91美女片黄在线观看游戏| 亚洲精选一区二区| 国产成人av网址| 亚洲精品国产精品国自产在线| 欧美激情精品久久久久久变态| 成人日韩av在线| 国产精品美乳在线观看| 日韩在线中文字幕| 日韩在线视频网| 亚洲欧美激情精品一区二区| 国产精品久久77777| 欧美在线视频a| 97超级碰碰人国产在线观看| 欧美专区福利在线| 欧美电影电视剧在线观看| 97久久久久久| 伊人久久久久久久久久久久久| 91精品国产免费久久久久久| 欧美精品18videosex性欧美| 亚洲第一av在线| 最近2019好看的中文字幕免费| 韩剧1988免费观看全集| 国产亚洲美女精品久久久| 国产极品jizzhd欧美| 日韩h在线观看| 欧美日韩亚洲成人| 亚洲国产一区二区三区四区| 欧洲一区二区视频| 久久久久国产视频| 欧美最顶级的aⅴ艳星| 国产午夜精品一区理论片飘花| 国产精品影片在线观看| 日韩成人在线免费观看| 亚洲国产精品字幕| 久久视频国产精品免费视频在线| 久久久久久久久电影| 亚洲精品电影久久久| 九九久久精品一区| 2019中文字幕全在线观看| 91精品免费看| 亚洲欧美激情四射在线日| 国产噜噜噜噜噜久久久久久久久| 国产精品69精品一区二区三区| 亚洲大胆人体在线| 91午夜理伦私人影院| 狠狠久久亚洲欧美专区| 国产精品美女免费视频| 国语自产精品视频在线看抢先版图片| 成人精品久久一区二区三区| 亚洲国产精彩中文乱码av| 欧美视频免费在线观看| 欧美日韩一区二区三区| 国产精品成av人在线视午夜片| 欧美丰满老妇厨房牲生活| 国产精品永久免费视频| 久久精品国产96久久久香蕉| 国产一区二区三区久久精品| 亚洲精品大尺度| 国产精品亚洲激情| 久久久久日韩精品久久久男男| 欧美与黑人午夜性猛交久久久| 亚洲色图50p| 97在线视频国产| 亚洲国产成人爱av在线播放| 欧美精品日韩三级| 成人性生交大片免费看小说| 欧美大学生性色视频| 欧美久久精品午夜青青大伊人| 国产精品96久久久久久| 97超视频免费观看| 国产精品av网站| 久久精品一本久久99精品| 精品久久久久久久久久久久久久| 一区二区在线视频播放| 亚洲精品成人久久久| 97在线日本国产| 国产精品永久在线| 日韩美女在线观看| 久久久免费电影| 最近免费中文字幕视频2019| 欧美老女人www| 欧美大片免费观看在线观看网站推荐| 亚洲欧美日韩另类| 91在线观看免费高清| 精品久久久久久久久久| 欧美精品在线观看91| 国产欧美日韩免费| 亚洲精品国产电影| 中文字幕亚洲欧美日韩高清| 黑人精品xxx一区一二区| 欧美人与物videos| 欧美日韩一二三四五区| 中文字幕亚洲欧美日韩在线不卡| 亚洲人成在线观| 日本韩国在线不卡| 日本一区二区在线免费播放| 欧美激情精品久久久久久变态| 91视频国产一区| 国产精品日韩欧美大师| 亚洲精品98久久久久久中文字幕| 欧美激情中文字幕乱码免费| 国产亚洲欧美日韩一区二区| 亚洲偷欧美偷国内偷| 最近中文字幕2019免费| 久久99精品久久久久久琪琪| 97精品久久久| 精品亚洲一区二区三区| 日韩av电影在线网| 高清欧美电影在线| 8050国产精品久久久久久| 久久天天躁夜夜躁狠狠躁2022|