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

首頁 > 編程 > JavaScript > 正文

JavaScript編寫Chrome擴展實現與瀏覽器的交互及時間通知

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

和瀏覽器的交互
1、書簽
使用chrome.bookmarks模塊來創建、組織和管理書簽。也可參看 Override Pages,來創建一個可定制的書簽管理器頁面。

1.1、manifest.json 中配置

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

對象和屬性:
簽是按照樹狀結構組織的,每個節點都是一個書簽或者一組節點(每個書簽夾可包含多個節點)。每個節點都對應一個BookmarkTreeNode 對象。

可以通過 chrome.bookmarks API來使用BookmarkTreeNode的屬性。

例子:
創建了一個標題為 "Extension bookmarks"的書簽夾。

chrome.bookmarks.create({'parentId': bookmarkBar.id,             'title': 'Extension bookmarks'},            function(newFolder) { console.log("added folder: " + newFolder.title);});

創建了一個指向擴展開發文檔的書簽。

chrome.bookmarks.create({'parentId': extensionsFolderId,             'title': 'Extensions doc',             'url': 'http://code.google.com/chrome/extensions'});

2、Cookies
2.1、manifest.json 中配置

{ "name": "My extension", ... "permissions": [  "cookies",  "*://*.google.com" ], ...}

3、開發者工具
下列API模塊提供了開發人員工具的部分接口,以支持您對開發人員工具進行擴展。

(1)devtools.inspectedWindow
(2)devtools.network
(3)devtools.panels
3.1、manifest.json 中配置

{ "name": ... "version": "1.0", "minimum_chrome_version": "10.0", "devtools_page": "devtools.html", ...}

4、Events
Event 是一個對象,當你關注的一些事情發生時通知你。 以下是一個使用 chrome.tabs.onCreated event 的例子,每當一個新標簽創建時,event對象會得到通知:

chrome.tabs.onCreated.addListener(function(tab) { appendToLog('tabs.onCreated --'       + ' window: ' + tab.windowId       + ' tab: '  + tab.id       + ' index: ' + tab.index       + ' url: '  + tab.url);});

你可以調用任何 Event 對象的以下方法:

void addListener(function callback(...))void removeListener(function callback(...))bool hasListener(function callback(...))

5、瀏覽歷史
chorme.history 模塊被用于和瀏覽器所訪問的頁面記錄交互。你可以添加、刪除、查詢瀏覽器的歷史記錄。

5.1、manifest.json 中配置

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

6、插件管理
chrome.management 模塊提供了管理已安裝和正在運行中的擴展或應用的方法。對于重寫內建的新標簽頁的擴展尤其有用。

要使用這個API,您必須在擴展清單文件中 中對授權。

6.1、manifest.json 中配置

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

7、標簽
chrome標簽模塊被用于和瀏覽器的標簽系統交互。此模塊被用于創建,修改,重新排列瀏覽器中的標簽。

7.1、manifest.json 中配置

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

8、視窗
使用chrome.windows模塊與瀏覽器視窗進行交互。 你可以使用這個模塊在瀏覽器中創建、修改和重新排列視窗。

8.1、manifest.json 中配置

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

時間通知(notifications)的實現
1、創建notification的兩種方法:

// 注意:沒有必要調用 webkitNotifications.checkPermission()。// 聲明了 notifications 權限的擴展程序總是允許創建通知。// 創建一個簡單的文本通知:var notification = webkitNotifications.createNotification( '48.png', // 圖標 URL,可以是相對路徑 '您好!', // 通知標題 '內容(Lorem ipsum...)' // 通知正文文本);// 或者創建 HTML 通知:var notification = webkitNotifications.createHTMLNotification( 'notification.html' // HTML 的 URL,可以是相對路徑);// 然后顯示通知。notification.show();

2、通知與其他頁面的通信方式:

// 在一個通知中...chrome.extension.getBackgroundPage().doThing();// 來自后臺網頁...chrome.extension.getViews({type:"notification"}).forEach(function(win) { win.doOtherThing();});

3、時間通知的實例
下面就創建一個時間通知,每個10秒鐘彈出一次時間提醒,一共彈出10次。

2016516161415314.png (315×87)

3.1、manifest.json

{ // 這個字段將用在安裝對話框,擴展管理界面,和store里面,彈出通知的標題 "name": "系統通知", // 擴展的版本用一個到4個數字來表示,中間用點隔開,必須在0到65535之間,非零數字不能0開頭 "version": "1", // 描述擴種的一段字符串(不能是html或者其他格式,不能超過132個字符)。這個描述必須對瀏覽器擴展的管理界面和Chrome Web Store都合適。 "description": "Shows off desktop notifications, which are /"toast/" windows that pop up on the desktop.", // 一個或者多個圖標來表示擴展,app,和皮膚 "icons": {   "16": "16.png", // 應用的fa網頁圖標   "48": "48.png", // 應用管理頁面需要這個圖標   "128": "128.png" // 在webstore安裝的時候使用 }, // 擴展或app將使用的一組權限 "permissions": ["tabs", "notifications"], // Manifest V2 用background屬性取代了background_page // 這里指定了一個Javascript腳本 "background": { "scripts": ["background.js"] }, // Manifest version 1在Chrome18中已經被棄用了,這里應該指定為2 "manifest_version": 2, // manifest_version 2中,指定擴展程序包內可以在網頁中使用的資源路徑(相對于擴展程序包的根目錄)需要使用該屬性把資源列入白名單,插入的content script本身不需要加入白名單 "web_accessible_resources": [  "48.png" ]}

3.2、background.js

/** * 顯示一個時間 notification */function show() {  var time = new Date().format('yyyy-MM-dd hh:mm:ss');   // 創建一個notification   var notification = window.webkitNotifications.createNotification(    '48.png',  // 圖片,在web_accessible_resources 中添加了    '現在的時間是:',  // title    time  // body.   );   // 顯示notification   notification.show();}// 格式化時間函數Date.prototype.format = function(format){  var o = {  "M+" : this.getMonth()+1, //month  "d+" : this.getDate(),  //day  "h+" : this.getHours(),  //hour  "m+" : this.getMinutes(), //minute  "s+" : this.getSeconds(), //second  "q+" : Math.floor((this.getMonth()+3)/3), //quarter  "S" : this.getMilliseconds() //millisecond  }  if(/(y+)/.test(format)) format=format.replace(RegExp.$1,  (this.getFullYear()+"").substr(4 - RegExp.$1.length));  for(var k in o)if(new RegExp("("+ k +")").test(format))  format = format.replace(RegExp.$1,  RegExp.$1.length==1 ? o[k] :  ("00"+ o[k]).substr((""+ o[k]).length));  return format;}// 測試瀏覽器是否支持 webkitNotificationsif(window.webkitNotifications) {  // 顯示通知   show();   var interval = 0;  // 彈出10次  var times = 10;  // 創建定時器   var timer = setInterval(function() {    interval++;    // 10秒鐘彈出一次    if (10 <= interval) {       show();       interval = 0;       times--;       if(times <- 0) clearInterval(timer);    }   }, 1000);}

源代碼

https://github.com/arthinking/google-plugins/tree/master/example/notifications

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品狠狠操| 欧美午夜精品久久久久久久| 国产精品偷伦免费视频观看的| 日韩在线观看视频免费| 久久伊人精品一区二区三区| 国产美女被下药99| 欧美成人激情视频| 人妖精品videosex性欧美| 日韩欧美在线字幕| 亚洲午夜久久久影院| 色午夜这里只有精品| xxxx欧美18另类的高清| 成人欧美在线视频| 伊人久久大香线蕉av一区二区| 国产一区二区三区在线观看视频| 日本精品性网站在线观看| 国产精品96久久久久久又黄又硬| 精品久久香蕉国产线看观看gif| 日韩黄在线观看| 亚洲人成啪啪网站| 欧美性videos高清精品| 这里只有精品视频在线| 538国产精品一区二区在线| 欧美在线亚洲一区| 亚洲国产一区自拍| 欧美在线观看一区二区三区| 日韩欧美国产黄色| 97在线观看免费| 欧美一区在线直播| 69**夜色精品国产69乱| 久久久亚洲欧洲日产国码aⅴ| 91热精品视频| 国产亚洲欧美日韩一区二区| 久久综合免费视频| 国产成人精品视频在线| 欧美精品一区二区免费| 性欧美视频videos6一9| 久久国内精品一国内精品| 午夜免费在线观看精品视频| 欧美成人三级视频网站| 免费av在线一区| 中文字幕亚洲精品| 国产精品久久久久高潮| 成人两性免费视频| 亚洲精品视频播放| 伦伦影院午夜日韩欧美限制| 久久99久久99精品免观看粉嫩| 亚洲嫩模很污视频| 日本精品视频网站| 久久久久久久一区二区三区| 在线播放日韩av| 亚洲第一视频在线观看| 国产一区二区三区精品久久久| 深夜精品寂寞黄网站在线观看| 亚洲第一区中文字幕| 中文字幕日韩免费视频| 欧美日韩中文字幕在线| 国产欧美精品在线播放| 欧美国产日韩一区二区| 亚洲国产成人在线视频| 亚洲成avwww人| 欧美日韩午夜剧场| 亚洲欧美日韩网| 亚洲精品国产精品乱码不99按摩| 亚洲在线免费看| 亚洲欧美制服第一页| 国产视频自拍一区| 久久精品99久久香蕉国产色戒| 国产欧美一区二区三区在线| 国产成人在线一区二区| 亚洲免费福利视频| 人九九综合九九宗合| 色婷婷综合久久久久| 丝袜亚洲欧美日韩综合| 精品国内亚洲在观看18黄| 91最新在线免费观看| 日韩在线观看免费全集电视剧网站| 成人免费视频在线观看超级碰| 成人看片人aa| 黄色成人在线免费| 日韩中文字幕在线| 高跟丝袜一区二区三区| 在线视频日本亚洲性| 日韩高清人体午夜| 亚洲人成电影网站色…| 国内精品久久影院| 欧美另类交人妖| 91亚洲精品久久久久久久久久久久| 国产精品一二区| 亚洲视频777| 91中文在线观看| 欧美高跟鞋交xxxxxhd| 欧美日韩亚洲91| 亚洲第一页自拍| 亚洲精品美女免费| 欧美日韩在线第一页| 欧美丝袜第一区| 亚洲欧美日韩一区二区在线| 欧美午夜美女看片| 久久精品视频免费播放| 国产精品成人在线| 精品中文字幕在线2019| 国产日韩亚洲欧美| 久久久爽爽爽美女图片| 亚洲天堂男人天堂| 日韩黄色av网站| 一区国产精品视频| 尤物yw午夜国产精品视频明星| 少妇高潮久久77777| 国产精品第七影院| 欧美极品xxxx| 欧美自拍视频在线观看| 日本欧美精品在线| 精品国产999| 成人免费直播live| 国产欧美日韩中文字幕| 欧美一区深夜视频| 福利一区福利二区微拍刺激| 欧美激情精品久久久| 美女视频黄免费的亚洲男人天堂| 隔壁老王国产在线精品| 91精品久久久久久久久久另类| 日韩在线中文字幕| 这里只有精品在线播放| 亚洲第一视频在线观看| 午夜精品国产精品大乳美女| 成人黄色生活片| 亚洲精品不卡在线| 欧美理论电影在线播放| 国产成人精品一区二区| 亚洲网站在线看| 91香蕉亚洲精品| 精品电影在线观看| 欧美亚洲第一页| 久久激情视频免费观看| 国产精品jizz在线观看麻豆| 98精品国产自产在线观看| 日韩在线小视频| 午夜免费久久久久| 中文字幕久久精品| 国产精品成熟老女人| 国产精品美乳一区二区免费| 成人精品一区二区三区电影黑人| 97高清免费视频| 中文字幕日本欧美| 国产精品第一页在线| 亚洲色图日韩av| 久久久精品国产一区二区| 欧美日韩免费网站| 欧美人在线视频| 成人福利视频网| 亚洲欧美激情四射在线日| 国产精品久久久久影院日本| 成人羞羞国产免费| 97精品在线视频| 亚洲网址你懂得| 欧洲成人性视频| 中文字幕亚洲综合久久| 欧美亚洲成人精品| 亚洲精品久久久久久下一站| 亚洲第一免费播放区| 91成人精品网站| 日韩电影第一页| 97婷婷涩涩精品一区|