SlideShare a Scribd company logo
1 of 17
Chrome 扩展开发入门

greatghoul@scriptfan201204
Web 应用的一个新平台
带来了什么 ?
平台:开发、布署、推广
技术: HTML5 、 WebGL 、本地存储、扩展机
 制、离线
服务:权限管理、数据同步、自动更新
扩展的类型

Extension:  扩展
Themes :主题
Webapps:  应用
扩展的组成
manifest.json
 {
     "name": "My Extension", // 扩展名称
     "version": "2.1", // 版本号
     "description": "Gets information from Google.", // 描述
     "icons": { "128": "icon_128.png" }, // 图标资源 16 24 32 48 96 128
     "background_page": "bg.html", // 后台页面
     "permissions": ["http://*.google.com/", "https://*.google.com/"], // 权限,安全
     "browser_action": {
       "default_title": "popup title", // 提示文字
       "default_icon": "icon_19.png", // 按钮图标
       "default_popup": "popup.html" // 弹出页面
     }
 }
Browser Actions
icon, tooltip, popup
   ­  在 manifest.json  中定义
   ­  动态调用: 'setIcon(), setTitle(), setPopup()'

Badge  扩展状态通知
   ­  最多 4 个字符,显示少量信息
   ­  调用: 'setBadgeText(), setBadgeBackgroundColor()'

 "browser_action": {
   "default_icon": "images/icon19.png", // optional
   "default_title": "Google Mail", // optional; tooltip
   "default_popup": "popup.html"      // optional
 },
Page Actions
与 Browser Actions 类似
但在特定页面生效
与 Browser Actions 配置互斥




 "page_action": {
  "default_icon": "icons/foo.png", // optional
  "default_title": "Do action", // optional; shown in tooltip
  "default_popup": "popup.html" // optional},
Option Pages
保存用户信息 , 使用习惯
数据存储 :cookie, localStorage, web database


Manifest.json
==========
"options_page": "options.html",

在页面中添加设置页按钮
=======================
chrome.tabs.create({ url: 'options.html'});
Background pages
后台运行的 HTML 页 (Active → Deactive)
可以理解为 WEB 应用的后端
负责与各视图页面交互 (MVC)
Manifest.json
==========
"options_page": "options.html",

交互
====
chrome.extension.getViews()
chrome.extension.getBackgroundPage()
Message Passing
One­time request
Long­live request
Cross­extension messaging
chrome.extension.sendRequest({greeting: "hello"}, function(response) {
  // do something
});
chrome.extension.onRequest.addListener(
 function(request, sender, sendResponse) {
     // do something
     sendResponse({}); // snub them.
 });
Content Scripts
 Content Script
   ­  访问或者更新页面 DOM
   ­  执行跨域请求
   ­  设置加载时机 document_(start|end|idle)
   ­  集成 Userscript
   ­  使用有限制,与扩展交互困难
跨域请求
NPAPI Plugins
Content Script  脚本加载
配置
 "content_scripts": [
   {
     "matches": ["http://www.google.com/*"],
     "css": ["mystyles.css"],
     "js": ["jquery.js", "myscript.js"]
   }
 ],

按需加载
"permissions": ["tabs", "http://*/*"],
chrome.tabs.executeScript(null, {code:“document.body.bgColor='red''"});
chrome.tabs.executeScript(null, {file: "content_script.js"});
调用你的扩展
载入开发中的扩展
使用 Developer's Tools 进行调试
当资源更改时进行 Reload
其它平台
 Gmail Gadgets
 iGoogle Gadgets
 WebQQ Q+
资源
C h rom e 插件开发者帮助手册(在线版)
C h rom e 插件开发者帮助手册(离线版)
JQuery mustache
谢谢 !

More Related Content

Viewers also liked (9)

Modello - Riccardo Buttazzo
Modello - Riccardo ButtazzoModello - Riccardo Buttazzo
Modello - Riccardo Buttazzo
 
Modello - Giulia Boeri
Modello - Giulia BoeriModello - Giulia Boeri
Modello - Giulia Boeri
 
Contadino Design - Gruppo 5
Contadino Design - Gruppo 5Contadino Design - Gruppo 5
Contadino Design - Gruppo 5
 
Python网络抓取小试
Python网络抓取小试Python网络抓取小试
Python网络抓取小试
 
Modello - Camilla Casiccia
Modello - Camilla CasicciaModello - Camilla Casiccia
Modello - Camilla Casiccia
 
Modello - Chiara Bosoni
Modello - Chiara BosoniModello - Chiara Bosoni
Modello - Chiara Bosoni
 
Contadino Design - Gruppo 2
Contadino Design - Gruppo 2Contadino Design - Gruppo 2
Contadino Design - Gruppo 2
 
Contadino Design - Gruppo 1
Contadino Design - Gruppo 1Contadino Design - Gruppo 1
Contadino Design - Gruppo 1
 
Contadino Design - Gruppo 8
Contadino Design - Gruppo 8Contadino Design - Gruppo 8
Contadino Design - Gruppo 8
 

Similar to Chrome扩展开发入门

用 Vite 開啟你的 Extension(LearnWeb Taiwan Meetup #13 )
用 Vite 開啟你的 Extension(LearnWeb Taiwan Meetup #13 )用 Vite 開啟你的 Extension(LearnWeb Taiwan Meetup #13 )
用 Vite 開啟你的 Extension(LearnWeb Taiwan Meetup #13 )
LearnWeb Taiwan
 
HTML5概览
HTML5概览HTML5概览
HTML5概览
Adam Lu
 
淘宝移动端Web开发最佳实践
淘宝移动端Web开发最佳实践淘宝移动端Web开发最佳实践
淘宝移动端Web开发最佳实践
jay li
 
旺铺前端设计和实现
旺铺前端设计和实现旺铺前端设计和实现
旺铺前端设计和实现
hua qiu
 
基于Greasemonkey的Firefox浏览器扩展
基于Greasemonkey的Firefox浏览器扩展基于Greasemonkey的Firefox浏览器扩展
基于Greasemonkey的Firefox浏览器扩展
agen
 
基于Greasemonkey的Firefox浏览器扩展
基于Greasemonkey的Firefox浏览器扩展基于Greasemonkey的Firefox浏览器扩展
基于Greasemonkey的Firefox浏览器扩展
agen
 
Developer也可以做出漂亮網站 - Twitter Bootstrap/JQuery Mobile簡介
Developer也可以做出漂亮網站 - Twitter Bootstrap/JQuery Mobile簡介Developer也可以做出漂亮網站 - Twitter Bootstrap/JQuery Mobile簡介
Developer也可以做出漂亮網站 - Twitter Bootstrap/JQuery Mobile簡介
Fred Lin
 
客户端存储与计算
客户端存储与计算客户端存储与计算
客户端存储与计算
xiaotao ning
 
高性能网站最佳实践
高性能网站最佳实践高性能网站最佳实践
高性能网站最佳实践
longhao
 
Using google appengine_final
Using google appengine_finalUsing google appengine_final
Using google appengine_final
Wei Sun
 
Magento页面载入的执行流程
Magento页面载入的执行流程Magento页面载入的执行流程
Magento页面载入的执行流程
Sim Jiason
 

Similar to Chrome扩展开发入门 (20)

用 Vite 開啟你的 Extension(LearnWeb Taiwan Meetup #13 )
用 Vite 開啟你的 Extension(LearnWeb Taiwan Meetup #13 )用 Vite 開啟你的 Extension(LearnWeb Taiwan Meetup #13 )
用 Vite 開啟你的 Extension(LearnWeb Taiwan Meetup #13 )
 
HTML5概览
HTML5概览HTML5概览
HTML5概览
 
淘宝移动端Web开发最佳实践
淘宝移动端Web开发最佳实践淘宝移动端Web开发最佳实践
淘宝移动端Web开发最佳实践
 
淘宝移动端Web开发最佳实践
淘宝移动端Web开发最佳实践淘宝移动端Web开发最佳实践
淘宝移动端Web开发最佳实践
 
旺铺前端设计和实现
旺铺前端设计和实现旺铺前端设计和实现
旺铺前端设计和实现
 
张所勇:前端开发工具推荐
张所勇:前端开发工具推荐张所勇:前端开发工具推荐
张所勇:前端开发工具推荐
 
基于Greasemonkey的Firefox浏览器扩展
基于Greasemonkey的Firefox浏览器扩展基于Greasemonkey的Firefox浏览器扩展
基于Greasemonkey的Firefox浏览器扩展
 
移动Web开发框架jqm探讨
移动Web开发框架jqm探讨移动Web开发框架jqm探讨
移动Web开发框架jqm探讨
 
Dev camps Windows Store App 市集應用程式最佳實踐
Dev camps   Windows Store App 市集應用程式最佳實踐Dev camps   Windows Store App 市集應用程式最佳實踐
Dev camps Windows Store App 市集應用程式最佳實踐
 
基于Greasemonkey的Firefox浏览器扩展
基于Greasemonkey的Firefox浏览器扩展基于Greasemonkey的Firefox浏览器扩展
基于Greasemonkey的Firefox浏览器扩展
 
Kissy design
Kissy designKissy design
Kissy design
 
如何利用 www.webpagetest.org 進行網頁效能分析與改進建議 (真實案例)
如何利用 www.webpagetest.org 進行網頁效能分析與改進建議 (真實案例)如何利用 www.webpagetest.org 進行網頁效能分析與改進建議 (真實案例)
如何利用 www.webpagetest.org 進行網頁效能分析與改進建議 (真實案例)
 
NextGen
NextGenNextGen
NextGen
 
Developer也可以做出漂亮網站 - Twitter Bootstrap/JQuery Mobile簡介
Developer也可以做出漂亮網站 - Twitter Bootstrap/JQuery Mobile簡介Developer也可以做出漂亮網站 - Twitter Bootstrap/JQuery Mobile簡介
Developer也可以做出漂亮網站 - Twitter Bootstrap/JQuery Mobile簡介
 
客户端存储与计算
客户端存储与计算客户端存储与计算
客户端存储与计算
 
高性能网站最佳实践
高性能网站最佳实践高性能网站最佳实践
高性能网站最佳实践
 
不一樣的 Web Server coServ Part II
不一樣的 Web Server coServ Part II不一樣的 Web Server coServ Part II
不一樣的 Web Server coServ Part II
 
Using google appengine_final
Using google appengine_finalUsing google appengine_final
Using google appengine_final
 
Magento页面载入的执行流程
Magento页面载入的执行流程Magento页面载入的执行流程
Magento页面载入的执行流程
 
Flash RIA Usability
Flash RIA UsabilityFlash RIA Usability
Flash RIA Usability
 

Recently uploaded

1.1.3急救你必须懂四年级设计与工艺练习活页练习单元一四年级设计与工艺急救你必须懂
1.1.3急救你必须懂四年级设计与工艺练习活页练习单元一四年级设计与工艺急救你必须懂1.1.3急救你必须懂四年级设计与工艺练习活页练习单元一四年级设计与工艺急救你必须懂
1.1.3急救你必须懂四年级设计与工艺练习活页练习单元一四年级设计与工艺急救你必须懂
PUAXINYEEMoe
 
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
michaelell902
 
10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
PUAXINYEEMoe
 

Recently uploaded (9)

Math Chapter3-教學PPT第03單元形體關係、體積與表面積Grade Six
Math Chapter3-教學PPT第03單元形體關係、體積與表面積Grade SixMath Chapter3-教學PPT第03單元形體關係、體積與表面積Grade Six
Math Chapter3-教學PPT第03單元形體關係、體積與表面積Grade Six
 
啟思中國語文 - 中二 單元一 - 孟嘗君列傳 - 記敍的方法和人稱1.pptx
啟思中國語文 - 中二 單元一 - 孟嘗君列傳 - 記敍的方法和人稱1.pptx啟思中國語文 - 中二 單元一 - 孟嘗君列傳 - 記敍的方法和人稱1.pptx
啟思中國語文 - 中二 單元一 - 孟嘗君列傳 - 記敍的方法和人稱1.pptx
 
taibif_資料標準概念介紹_20240509_20240509_20340509.pdf
taibif_資料標準概念介紹_20240509_20240509_20340509.pdftaibif_資料標準概念介紹_20240509_20240509_20340509.pdf
taibif_資料標準概念介紹_20240509_20240509_20340509.pdf
 
1.🎉成绩单,你的成绩! 💡🔥每个人都有自己的成绩单,它记录着我们努力的成果。但有时候,看着这些数字,却发现它们好像在嘲笑我?别担心,让我来告诉你们怎么改...
1.🎉成绩单,你的成绩! 💡🔥每个人都有自己的成绩单,它记录着我们努力的成果。但有时候,看着这些数字,却发现它们好像在嘲笑我?别担心,让我来告诉你们怎么改...1.🎉成绩单,你的成绩! 💡🔥每个人都有自己的成绩单,它记录着我们努力的成果。但有时候,看着这些数字,却发现它们好像在嘲笑我?别担心,让我来告诉你们怎么改...
1.🎉成绩单,你的成绩! 💡🔥每个人都有自己的成绩单,它记录着我们努力的成果。但有时候,看着这些数字,却发现它们好像在嘲笑我?别担心,让我来告诉你们怎么改...
 
1.1.3急救你必须懂四年级设计与工艺练习活页练习单元一四年级设计与工艺急救你必须懂
1.1.3急救你必须懂四年级设计与工艺练习活页练习单元一四年级设计与工艺急救你必须懂1.1.3急救你必须懂四年级设计与工艺练习活页练习单元一四年级设计与工艺急救你必须懂
1.1.3急救你必须懂四年级设计与工艺练习活页练习单元一四年级设计与工艺急救你必须懂
 
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
 
10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
 
1.🎉“黑客”如何修改成绩?🤔🎉 在这个信息爆炸的时代,我们经常会看到各种作弊手段。但是你知道吗?有一种作弊方式可能比你想象中更巧妙:它就是——黑客![单...
1.🎉“黑客”如何修改成绩?🤔🎉 在这个信息爆炸的时代,我们经常会看到各种作弊手段。但是你知道吗?有一种作弊方式可能比你想象中更巧妙:它就是——黑客![单...1.🎉“黑客”如何修改成绩?🤔🎉 在这个信息爆炸的时代,我们经常会看到各种作弊手段。但是你知道吗?有一种作弊方式可能比你想象中更巧妙:它就是——黑客![单...
1.🎉“黑客”如何修改成绩?🤔🎉 在这个信息爆炸的时代,我们经常会看到各种作弊手段。但是你知道吗?有一种作弊方式可能比你想象中更巧妙:它就是——黑客![单...
 
taibif_開放資料流程-清理資料01-通則_20240509_20240509.pdf
taibif_開放資料流程-清理資料01-通則_20240509_20240509.pdftaibif_開放資料流程-清理資料01-通則_20240509_20240509.pdf
taibif_開放資料流程-清理資料01-通則_20240509_20240509.pdf
 

Chrome扩展开发入门