Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Chrome Extension
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
周祺
February 28, 2011
Programming
390
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Chrome Extension
Chrome插件开发
周祺
February 28, 2011
More Decks by 周祺
See All by 周祺
Mobile Web的性能优化与测试
zhouqicf
7
370
Web App
zhouqicf
1
210
Web App开发
zhouqicf
4
290
f2e @ 2012
zhouqicf
6
190
Photoshop影像修饰艺术
zhouqicf
4
400
前端和视觉间的故事
zhouqicf
1
180
CSS模块化
zhouqicf
2
250
Other Decks in Programming
See All in Programming
実装をデザインガイドラインに追従させるための取り組み / 260731-dip-mosh-design-system
dachi023
0
5.5k
freeeにおけるEvalsの実践例の紹介
freee
PRO
0
130
源内ハンズオン概要編
hideg
0
190
Laravel Boostに学ぶ、AIにPHPを書かせる技術 〜OSSの実装から蒸留するエージェント制御の王道〜
kentaroutakeda
3
730
レビュー履歴をAIに食わせて、 Compose移行を加速するs
shihochan
0
110
言葉の格闘技のススメ~紙とペンと言葉から始める、キャリアの描き方~
progresscicada
2
160
自動化したのに回らないテスト運用の壁ーAI時代の品質責任と生産性
mfunaki
1
140
SlackアプリとLambdaの 連携を構築した話
pawn_4_s
1
130
How I Won Prize Money at a Hackathon Using Codex and Symphony Alpha
yasei_no_otoko
0
110
What's New in Android 2026
veronikapj
0
270
複数の Claude Code が"放置"されてしまう問題をCLI ダッシュボードを自作して解決した話
sumihiro3
1
710
属人化した知識を、 AIが辿れる地図にする
pkshadeck
PRO
1
190
Featured
See All Featured
Exploring anti-patterns in Rails
aemeredith
3
470
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
210
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
570
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
370
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
490
Writing Fast Ruby
sferik
630
63k
Mind Mapping
helmedeiros
PRO
1
320
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
700
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
3
450
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
470
GraphQLとの向き合い方2022年版
quramy
50
15k
Transcript
Chr me Extension 口碑F2E-由校 2011-02-28
f2e !== Future.f2e HTML + CSS + JAVASCRIPT http://www.adobe.com/cn/devnet/air/ajax/
f2e !== Future.f2e
“你很幸运,因为Chrome插件开发是如此简单,你不需要明白什么是 ActiveX,不需要知道什么叫COM,嗯,让他们一边凉快去吧,这里只有 HTML & Javascript,这里是互联网的世界!” 前端是多么幸运,因为Chrome插件开发对于我们来说是如此简单,这里 只有HTML & CSS &
Javascript,这里是我们的世界! -- via youxiao 互联网前端的世界
Enjoy ! CSS3 ! HTML5 ! audio
! application cache ! canvas ! geolocation ! local storage ! Notifications ! session storage ! video ! web database ! Jquery、YUI、ExtJs……
Chrome APIs ! Bookmarks ! ContextMenus ! I18n ! Omnibox
! History ! A8 ! …
Files
The manifest file { "name" : "Code Cola", //插件名称(i18n 下使用
”__MSG_key__”) "version" : "1.2.2", //插件版本(发布插件时读取该版本号,必须唯一) "default_locale“ : "en", //默认语言 "description" : "Gets information from Google.", //插件描述 //图标 "icons" : { "128": "128.png", "48": "48.png", "32": "32.png", "24": "24.png" }, "background_page": "bg.html", // background_page "options_page": "options.html", //配置⻚页 //插件权限(更改设置时,谷歌会对用户进行提醒) "permissions": ["tabs", "*://*/*"], //工具栏上的按钮图标 "browser_action": { "default_title": "code cola", "default_icon": "codecola.png", "default_popup": "popup.html" //popup⻚页面 } }
Extension UIs Background.html Content scripts Popup.html Execute Js
Background.html Manifest.json : { “background_page”: “bg.html” } //显示有几封新邮件 chrome.browserAction.setBadgeText(object details)
//默认为蓝色的icon,有新邮件时,更改成红色的icon chrome.browserAction.setIcon(object details) //mouseover时显示“有n封新邮件”的title chrome.browserAction.setTitle(object details)
Content scripts Manifest.json : { "content_scripts": [ { "matches": ["*://*/*"],
"css": ["codecola.css"], "js": ["codecola.js"] } ] }
Browser Actions – Popup Manifest.json : { "browser_action": [ {
"default_icon": ["codecola.png"], "default_title": ["codecola"], "default_popup": ["popup.html"] } ] }
Browser Actions – execute JS Background.html: //code chrome.browserAction.onClicked.addListener(function(tab){ chrome.tabs.executeScript(tab.id,{ code:"document.body.bgColor='red'
" }); }); //file chrome.browserAction.onClicked.addListener(function(tab) { chrome.tabs.executeScript(tab.id, {file: "codecola.js"}, function(){ chrome.tabs.insertCSS(id, { file: "codecola.css " }); }); });
Communication
Communication //listener ( background.html ) chrome.extension.onRequest.addListener(function(request, sender, sendResponse){ sendResponse({ "action":
localStorage["codecola_getLink_action"] }); }); // requester ( content Js ) chrome.extension.sendRequest("getUrls", function(response) { console.log(response.action); }); Ps: 在background.html里无法直接操作⻚页面的dom
Communication p 用“Content scripts”来操作DOM p “Content scripts”和“background.html”通过 “chrome.extension”,以事件的方式来进行交互
Options manifest.json: { "options_page": "options.html" } option.html: localStorage["codecola_getLink_action"] = action;
Internationalization (i18n) manifest.json: { "name": "__MSG_messagename__" } Content js: chrome.i18n.getMessage("messagename")
messages.json: { "name": { "message" : "code cola", "description": "xxx" } } http://code.google.com/chrome/extensions/i18n.html
Debug
Learn
Pack “.pem”文件即是该插件的“私有密钥”,第一次打包时生成该密钥
Install
Publish https://chrome.google.com/webstore/developer/update
Have a Try – Apps https://dl-web.dropbox.com/get/dev/Chrome/apps.crx?w=4ea0e4eb
Have a Try – Apps
Have a Try – switch work space 点击浏览器 工具栏图标 获取当前
Tab的ID 改变当前 Tab的Url https://dl-web.dropbox.com/get/dev/Chrome/switch%20work%20space.crx?w=544cade7&dl=1
Try – switch work space https://dl-web.dropbox.com/get/dev/Chrome/switch%20work%20space.crx?w=544cade7
Try – switch work space view-source:https://dl-web.dropbox.com/get/dev/Chrome/switch%20work%20space/background.html?w=8c8998f6
Have a Try – switch work space If KXT? update_rpc.php
Excute Js Code Update Url
Resource http://code.google.com/chrome/extensions/getstarted.html http://code.google.com/intl/zh-CN/chrome/webstore/docs/index.html
Q&A
Thanks.