亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JavaScript開發(fā)Chrome瀏覽器擴(kuò)展程序UI的教程

 更新時間:2016年05月16日 16:00:52   作者:arthinking  
Chrome擴(kuò)展開發(fā)API中提供了一些關(guān)于UI外觀的操作,如果是剛剛上手的話首先需要了解Browser Actions、Omnibox、選項頁等,在這篇JavaScript開發(fā)Chrome瀏覽器擴(kuò)展程序UI的教程中,我們先來回顧一下基本知識:

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

一個最基本的配置例子:

{
  "name": "browser action demo",
  "version": "1.0",
  "permissions": [
    "tabs", "http://*/*", "https://*/*"
  ],
  "browser_action": {
    "default_title": "開關(guān)燈",
    "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
絕大多數(shù)應(yīng)用都包含一個背景頁面(background page),用來執(zhí)行應(yīng)用的主要功能。

1.4、Content scripts
通過content script可以使應(yīng)用和web頁面交互,content script是指能夠在瀏覽器已經(jīng)加載的頁面內(nèi)部運(yùn)行的Javascript腳本??梢詫ontent script看做是網(wǎng)頁的一部分,而不是它所在的應(yīng)用的一部分。

2、文件之間的交互
popup彈窗中可以直接調(diào)用背景頁面中的函數(shù)。

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

Content script與應(yīng)用之間的交互:可以互相發(fā)送消息

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

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

方法二,通過executeScript():

向頁面注入JavaScript 腳本執(zhí)行。

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

UI外觀
1、browser action:
在chrome主工具條的地址欄右側(cè)增加一個圖標(biāo)。

注意: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
圖標(biāo) 19 *19px

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

chrome.browserAction.setIcon(object details)

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

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

chrome.browserAction.setTitle(object details)

設(shè)置browser action的標(biāo)題,這個將顯示在tooltip中。

(3)Badge
Browser actions可以選擇性的顯示一個badge— 在圖標(biāo)上顯示一些文本。Badges 可以很簡單的為browser action更新一些小的擴(kuò)展?fàn)顟B(tài)提示信息。

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

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

chrome.browserAction.setBadgeText(object details)

設(shè)置browser action的badge文字,badge 顯示在圖標(biāo)上面。

setBadgeBackgroundColor

chrome.browserAction.setBadgeBackgroundColor(object details)

設(shè)置badge的背景顏色。

(4)default_popup
Popup 氣泡提示

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

chrome.browserAction.setPopup(object details)

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

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

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

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

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

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

2.1、manifest.json 中配置
在清單中聲明“contentMenus”權(quán)限。同時,您應(yīng)該指定一個16x16的圖標(biāo)用作右鍵菜單的標(biāo)識。例如:

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

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

直-接使用一小段 JavaScript 代碼創(chuàng)建通知,當(dāng)然也可以通過擴(kuò)展包內(nèi)的一個單獨(dú)HTML頁面。

3.1、manifest.json 中配置

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

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

// 在通知中調(diào)用擴(kuò)展頁面方法...
chrome.extension.getBackgroundPage().doThing();

// 從擴(kuò)展頁面調(diào)用通知的方法...
chrome.extension.getViews({type:"notification"}).forEach(function(win) {
 win.doOtherThing();
});

4、Omnibox
omnibox 應(yīng)用程序界面允許向Google Chrome的地址欄注冊一個關(guān)鍵字,地址欄也叫omnibox

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

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 自動創(chuàng)建灰度模式16x16像素的圖標(biāo)。你應(yīng)該提供全色版本圖標(biāo)以便可以在其他場景下使用。

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

5.1、manifest.json 中配置

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

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

6.1、manifest.json 中配置

{
 "name": "My extension",
 ...

 "chrome_url_overrides" : {
  "pageToOverride": "myPage.html"
 },
 ...
}

7、Page Actions
使用page actions把圖標(biāo)放置到地址欄里。

想讓擴(kuò)展圖標(biāo)總是可見,則使用browser action。

打包的應(yīng)用程序不能使用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 可以有圖標(biāo)、提示信息、 彈出窗口。但沒有badge

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

7.3、提示
要只對少數(shù)頁面使用page action;
不要對大多數(shù)頁面使用它,如果功能需要,使用 browser actions代替。
沒事別總讓圖標(biāo)出現(xiàn)動畫,那會讓人很煩。
8、主題
主題是一種特殊的擴(kuò)展,可以用來改變整個瀏覽器的外觀。主題和標(biāo)準(zhǔn)擴(kuò)展的打包方式類似,但是主題中不能包含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"
  }
 }
}

相關(guān)文章

  • 微信小程序視頻彈幕發(fā)送功能的實現(xiàn)

    微信小程序視頻彈幕發(fā)送功能的實現(xiàn)

    這篇文章主要介紹了微信小程序視頻彈幕發(fā)送功能的實現(xiàn),本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • 讀懂CommonJS的模塊加載

    讀懂CommonJS的模塊加載

    這篇文章主要介紹了CommonJS的模塊加載,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • JS實現(xiàn)輪播圖小案例

    JS實現(xiàn)輪播圖小案例

    這篇文章主要為大家詳細(xì)介紹了JS實現(xiàn)輪播圖小案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • 小程序調(diào)用微信支付的方法

    小程序調(diào)用微信支付的方法

    這篇文章主要為大家詳細(xì)介紹了小程序調(diào)用微信支付的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • 模仿password輸入框的實現(xiàn)代碼

    模仿password輸入框的實現(xiàn)代碼

    下面小編就為大家?guī)硪黄7聀assword輸入框的實現(xiàn)代碼。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • Java?@Schema和@ApiModel等注解的聯(lián)系淺析

    Java?@Schema和@ApiModel等注解的聯(lián)系淺析

    這篇文章主要給大家介紹了關(guān)于Java?@Schema和@ApiModel等注解的聯(lián)系的相關(guān)資料,我在看公司之前的文檔,發(fā)現(xiàn)了@schema注解,不太了解,所以查詢了一些資料,把我的見解記錄下,需要的朋友可以參考下
    2023-08-08
  • 原生js實現(xiàn)下拉菜單

    原生js實現(xiàn)下拉菜單

    這篇文章主要為大家詳細(xì)介紹了原生js實現(xiàn)下拉菜單,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Java中int與integer的區(qū)別(基本數(shù)據(jù)類型與引用數(shù)據(jù)類型)

    Java中int與integer的區(qū)別(基本數(shù)據(jù)類型與引用數(shù)據(jù)類型)

    這篇文章主要介紹了int與integer的區(qū)別(基本數(shù)據(jù)類型與引用數(shù)據(jù)類型),簡單的說 int 是基本數(shù)據(jù)類型,integer 是引用數(shù)據(jù)類型,具體區(qū)別詳解大家參考下本文
    2017-02-02
  • 微信小程序?qū)崿F(xiàn)的canvas合成圖片功能示例

    微信小程序?qū)崿F(xiàn)的canvas合成圖片功能示例

    這篇文章主要介紹了微信小程序?qū)崿F(xiàn)的canvas合成圖片功能,結(jié)合實例形式分析了微信小程序canvas合成圖片相關(guān)組件使用、操作步驟與注意事項,需要的朋友可以參考下
    2019-05-05
  • js實現(xiàn)仿qq消息的彈出窗效果

    js實現(xiàn)仿qq消息的彈出窗效果

    這篇文章主要介紹了js實現(xiàn)仿qq消息的彈出窗效果,文章代碼實現(xiàn)模擬qq彈出框消息提醒,感興趣的小伙伴們可以參考一下
    2016-01-01

最新評論