亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

chrome擴(kuò)展開(kāi)發(fā)之旅 第三篇

shuibo / 1495人閱讀

摘要:第三章目錄簡(jiǎn)述右鍵菜單桌面提醒簡(jiǎn)述這部分對(duì)于前端的人來(lái)說(shuō)是基礎(chǔ)。已經(jīng)將的權(quán)限開(kāi)放了。制作實(shí)時(shí)查詢美元價(jià)格的擴(kuò)展代碼部分部分查詢美元當(dāng)日價(jià)格圖片請(qǐng)自行選用。

第三章目錄

3.1 CSS簡(jiǎn)述

3.2 Browser Actions

3.3 右鍵菜單

3.4 桌面提醒

3.5 omnibox

3.6 Page Actions

3.1 CSS簡(jiǎn)述

這部分對(duì)于前端的人來(lái)說(shuō)是基礎(chǔ)。就不說(shuō)了

3.2 Browser Action 圖標(biāo)設(shè)置

chrome一般會(huì)選擇19像素的圖片顯示在工具欄,但若用戶使用視網(wǎng)膜屏幕的計(jì)算機(jī),chrome則會(huì)選擇38像
素的圖片。兩種圖片并非都要指定,指定一個(gè),瀏覽器頁(yè)會(huì)自動(dòng)拉伸圖片適應(yīng)顯示需要,但是可能會(huì)很難看。

  "browser_action": {
      "default_icon": {
          "19": "images/icon19_0.png",  //鍵值名19與38并不指代像素,只是作者自己為了標(biāo)示
          "38": "images/icon38_0.png"   //chrome會(huì)自動(dòng)識(shí)別像素,并予以選用
      }
    }

動(dòng)態(tài)更改圖標(biāo)的方法
chrome.browserAction.setIcon(details,callback)

details的類(lèi)型為對(duì)象,可以包含以下三種屬性,分別是imagesData,path和tabId。

imagesData說(shuō)明
imagesData的值既可以是imagesData也可以是對(duì)象。

{size:imagesData}
imagesData是指圖片的像素?cái)?shù)據(jù),可以通過(guò)HTML的canvas標(biāo)簽獲取。

path說(shuō)明
path的值既可以是字符串也可以是對(duì)象,如果是對(duì)象,結(jié)構(gòu)為{size:imagePath}

tabId說(shuō)明
tabId的值限定了圖標(biāo)將在瀏覽哪個(gè)標(biāo)簽頁(yè)時(shí)被更改。

callback回調(diào)函數(shù)沒(méi)有可接收的結(jié)果

popup頁(yè)面

當(dāng)用戶點(diǎn)擊擴(kuò)展圖標(biāo)時(shí),彈出的頁(yè)面被成為popup頁(yè)面。

popup頁(yè)面更多的用來(lái)展示結(jié)構(gòu),而并非處理數(shù)據(jù)。因?yàn)殛P(guān)閉popup頁(yè)面等于關(guān)閉了相應(yīng)的標(biāo)簽頁(yè)。頁(yè)面不會(huì)
繼續(xù)運(yùn)行,等再次打開(kāi)popup頁(yè)面時(shí),所有的Dom與js空間遍歷都會(huì)重新創(chuàng)建。

如果需要實(shí)時(shí)處理數(shù)據(jù),則需要?jiǎng)?chuàng)建一個(gè)在后端一直運(yùn)行的頁(yè)面或者腳本(同時(shí)記得在manifest.json的
background域來(lái)聲明)

幾個(gè)注意項(xiàng):

給出頁(yè)面尺寸

不要模仿Chrome的原生UI

使用帶有滾動(dòng)條的DIV容器

設(shè)計(jì)一個(gè)更好的滾動(dòng)條樣式

屏蔽右鍵菜單

使用外部引用腳本

不要在popup頁(yè)面的js空間變量中保存數(shù)據(jù)

標(biāo)題和badge

將鼠標(biāo)移至擴(kuò)展圖片上,等待片刻就會(huì)顯示擴(kuò)展的title。
設(shè)置方式如下

  "browser_action": {
      "default_title": "Turtle"
  },

動(dòng)態(tài)設(shè)置方法

chrome.browserAction.setTitle({title: "This is a new title"});

badge常用來(lái)顯示我們未閱讀的數(shù)量等等,比如郵件,微博等。

設(shè)置方式

  chrome.browserAction.setBadgeBackgroundColor({color: "#0000ff"});
  chrome.browserAction.setBadgeText({text: "dog"});

注:背景顏色也可以用使用rgba。

2.3 右鍵菜單

首先,在manifest.json中的permissions域中聲明contextMenus權(quán)限。

  "permissions": [
    "contextMenus"
  ]

第二步,設(shè)置右鍵菜單項(xiàng)上顯示的擴(kuò)展圖標(biāo)

  "icon": {
    "16": "icon16.png"
  }

三種操作方法:

chrome.contextMenus.create()

chrome.contextMenus.update()

chrome.contextMenus.remove()
舉例如下:

  chrome.contextMenus.create({
    type: "normal",  //類(lèi)型有normal,radio,checkbox,separator
    title: "menu A",
    id: "a", //標(biāo)識(shí)每個(gè)選項(xiàng)
    parentId: "e",  //標(biāo)示父級(jí)選項(xiàng)
    contexts: ["link"] //完整的取值還有all,page,frame,selection,link,editable,
                       //image,video,audio,launcher。表示右鍵菜單顯示的時(shí)機(jī)
    });

update可以動(dòng)態(tài)更改菜單屬性,只需要指定需要更改的菜單id和所需要修改的屬性即可,remove方法可以刪
除指定的菜單欄選項(xiàng)。

3.4 桌面提醒 manifest部分
  "permissions": [
    "notifications"
  ];//manifest.json中聲明
  "web_accessible_resources": [
  "icon48.png"
  ]  //對(duì)于桌面窗口中顯示的圖片,需要先行聲明
js部分
  var notification = webkitNotiofications.createNotiofication(
    "icon48.png",
    "Notiofication Demo",
    "Merry Christmas"
    ); //建立一個(gè)提醒
  notification.show();//創(chuàng)建之后不會(huì)立即顯示,需要調(diào)用show
4種事件

ondisplay

onerror

onclose

onclick
除此之外,還可以通過(guò)notification.cancel()主動(dòng)關(guān)閉提醒窗口

omnibox

什么是omnibox呢,就是chrome 的地址欄,其實(shí)這是一個(gè)多功能輸入框,google稱(chēng)之為omnibox。Google
已經(jīng)將omnibox的權(quán)限開(kāi)放了。

"omnibox": { "keyword": "hamster"} //首先在manifest.json聲明并指定keyword

omnibox有4種事件

chrome.omnibox.onInputStarted

chrome.omnibox.onInputChanged

chrome.omnibox.onInputEntered

chrome.omnibox.onInputCancelled

Page Actions

Page Actions 與BrowserAction非常相似,除了沒(méi)有badge意外,后者擁有的方法前者都有。另一個(gè)區(qū)別
在于,前者圖標(biāo)并非一直顯示。所有前者可以自由控制顯示或者隱藏,如下。

  chrome.pageAction.show(tabId);
  chrome.pageAction.hide(tabId);
制作實(shí)時(shí)查詢美元價(jià)格的擴(kuò)展

js代碼部分

  function httpRequest(url, callback){
      var xhr = new XMLHttpRequest();
      xhr.open("GET", url, true);
      xhr.onreadystatechange = function() {
          if (xhr.readyState == 4) {
              callback(xhr.responseText);
          }
      }
      xhr.send();
  }

  function updateAmount(amount, exchange){
      amount = Number(amount);
      if(isNaN(amount) || !amount){
          exchange([{
              "content": "$1 = ¥"+price,
              "description": "$1 = ¥"+price
          },{
              "content": "¥1 = $"+(1/price).toFixed(6),
              "description": "¥1 = $"+(1/price).toFixed(6)
          }]);
      }
      else{
          exchange([{
              "content": "$"+amount+" = ¥"+(amount*price).toFixed(2),
              "description": "$"+amount+" = ¥"+(amount*price).toFixed(2)
          },{
              "content": "¥"+amount+" = $"+(amount/price).toFixed(6),
              "description": "¥"+amount+" = $"+(amount/price).toFixed(6)
          }]);
      }
  }

  function gotoYahoo(text, disposition){
      window.open("http://finance.yahoo.com/q?s=USDCNY=X");
  }

  var url = "http://query.yahooapis.com/v1/public/yql?q=select%20Rate%20from%20yahoo.finance.xchange%20where%20pair%20in%20(%22USDCNY%22)&env=store://datatables.org/alltableswithkeys&format=json";
  var price;

  httpRequest(url, function(r){
      price = JSON.parse(r);
      price = price.query.results.rate.Rate;
      price = Number(price);
  });

  chrome.omnibox.setDefaultSuggestion({"description":"Find current USD price."});

  chrome.omnibox.onInputChanged.addListener(updateAmount);

  chrome.omnibox.onInputEntered.addListener(gotoYahoo);

manifest部分

  {
      "manifest_version": 2,
      "name": "USD Price",
      "version": "1.0",
      "description": "查詢美元當(dāng)日價(jià)格",
      "background": {
          "scripts": [
              "js/background.js"
          ]
      },
      "icons": {
          "16": "images/icon16.png"
      },
      "omnibox": {
          "keyword": "usd"
      },
      "permissions": [
          "*://query.yahooapis.com/*"
      ]
  }

圖片請(qǐng)自行選用。
擴(kuò)展使用方法:載入擴(kuò)展之后,在瀏覽器地址欄輸入"usd",然后按空格鍵或者Tab鍵就可以使用了。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/91613.html

相關(guān)文章

  • chrome擴(kuò)展開(kāi)發(fā)之旅 第一篇

    摘要:擴(kuò)展及應(yīng)用介紹與區(qū)別介紹支持開(kāi)發(fā)者為其編寫(xiě)各種各樣的擴(kuò)展與應(yīng)用來(lái)擴(kuò)充其功能。用處安裝擴(kuò)展之后,就會(huì)讀取擴(kuò)展中的文件。結(jié)語(yǔ)以上就是第一章的總結(jié),接下來(lái)的筆記,敬請(qǐng)期待原書(shū)項(xiàng)目代碼下載擴(kuò)展及其應(yīng)用開(kāi)發(fā) 讀書(shū)筆記介紹 寒假想自己做一個(gè)chrome擴(kuò)展,便從圖書(shū)館借了這本書(shū)。同時(shí),為了培養(yǎng)自己的好習(xí)慣,做沉淀,便讀一章寫(xiě)一篇總結(jié),全書(shū)總共10章,將會(huì)分為10篇博文。歡迎大家多多指正,也希望大家...

    lei___ 評(píng)論0 收藏0
  • chrome擴(kuò)展開(kāi)發(fā)之旅 第四篇

    摘要:目錄結(jié)構(gòu)書(shū)簽歷史管理擴(kuò)展與應(yīng)用標(biāo)簽書(shū)簽第一步,在中聲明書(shū)簽的個(gè)屬性,并不是每個(gè)書(shū)簽都有這個(gè)對(duì)象,如書(shū)簽文件夾就不具有屬性。調(diào)整書(shū)簽位置更新書(shū)簽刪除書(shū)簽和空的書(shū)簽分組刪除包含書(shū)簽的書(shū)簽分組獲取完整的書(shū)簽內(nèi)容書(shū)簽的事件第一步,先行在中聲明。 目錄結(jié)構(gòu) 4.1 書(shū)簽 4.2 Cookies 4.3 歷史 4.4 管理擴(kuò)展與應(yīng)用 4.5 標(biāo)簽 4.6 overridePages 4.1 書(shū)...

    jackwang 評(píng)論0 收藏0
  • chrome擴(kuò)展開(kāi)發(fā)之旅 第二篇

    摘要:跨域請(qǐng)求跨域問(wèn)題,是開(kāi)發(fā)中一直以來(lái)需要注意的問(wèn)題。則發(fā)送通道的發(fā)送給監(jiān)聽(tīng)此消息的外部擴(kuò)展。完整方法此處,為必選參數(shù),為回調(diào)函數(shù)?;卣{(diào)函數(shù)接收到的參數(shù)有三個(gè),分別是和,即消息內(nèi)容,消息發(fā)送者相關(guān)信息和相應(yīng)函數(shù)。是發(fā)起消息的標(biāo)簽。 第二章簡(jiǎn)介 第二章較第一章復(fù)雜許多。書(shū)中雖寥寥21頁(yè),內(nèi)容卻也不少。涵蓋了8個(gè)小節(jié)。 2.1 操作用戶正在瀏覽的頁(yè)面 2.2 跨域請(qǐng)求 2.3 常駐后臺(tái) 2....

    shadajin 評(píng)論0 收藏0
  • chrome擴(kuò)展開(kāi)發(fā)之旅 第五篇

    摘要:目錄結(jié)構(gòu)下載網(wǎng)絡(luò)請(qǐng)求代理系統(tǒng)信息本章講解的是部分較為高級(jí)的,以供哪些有更高要求的讀者閱讀。對(duì)于目前的網(wǎng)絡(luò)請(qǐng)求,筆記實(shí)用的功能包括阻斷鏈接,更改和重定向。系統(tǒng)信息聲明方法三個(gè)接口都提供了的方法 目錄結(jié)構(gòu) 5.1 下載 5.2 網(wǎng)絡(luò)請(qǐng)求 5.3 代理 5.4 系統(tǒng)信息本章講解的是部分較為高級(jí)的API,以供哪些有更高要求的讀者閱讀。 5.1 下載 聲明 permissions: [ ...

    NotFound 評(píng)論0 收藏0
  • 【PWA學(xué)習(xí)與實(shí)踐】(5)在Web中進(jìn)行服務(wù)端消息推送

    摘要:本文是學(xué)習(xí)與實(shí)踐系列的第五篇文章。實(shí)際上,消息推送與提醒是兩個(gè)功能和。在這一篇里,我們先來(lái)學(xué)習(xí)如何使用進(jìn)行消息推送。而當(dāng)服務(wù)端要推送消息時(shí),會(huì)使用私鑰對(duì)發(fā)送的數(shù)據(jù)進(jìn)行數(shù)字簽名,并根據(jù)數(shù)字簽名生成一個(gè)叫請(qǐng)求頭。 《PWA學(xué)習(xí)與實(shí)踐》系列文章已整理至gitbook - PWA學(xué)習(xí)手冊(cè),文字內(nèi)容已同步至learning-pwa-ebook。轉(zhuǎn)載請(qǐng)注明作者與出處。 本文是《PWA學(xué)習(xí)與實(shí)踐》系...

    suemi 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<