来源:http://developer.chrome.com/extensions/
1,Getting Started
a,你可以基于任何Chrome的发行版开发extension
b,概念:Browser Action,extension和Chrome之间的桥梁,可以帮你在Chrome的工具栏添加一个按钮,由你来控制按钮的行为。
创建方式:首先,在你的PC上建立一个文件夹;其次,在该文件夹里创建一个manifest.json,然后按照教程上添加以下代码:
{ "name": "My First Extension", "version": "1.0", "manifest_version": 2, "description": "The first extension that I made.", "browser_action": { "default_icon": "icon.png" }, "permissions": [ "http://api.flickr.com/" ] }
最后,添加一个png格式的按钮图标就可以了。
加载extension的方法:工具-->扩展程序 --> 载入正在开发的扩展程序,找到那个文件夹然后加载就行了,manifest.json会被自动解析,图标被加到工具栏里了。如果没有任何其它代码,按下那个按钮当然没啥反应了。
c,向extension中添加代码
第一步,编辑manifest.json添加新的一行,指出弹出页面的html描述
... "browser_action": { "default_icon": "icon.png", "default_popup": "popup.html" }, ..
第二步,在刚才创建extension文件的文件夹里,创建两个文件popup.html和popup.js,然后添加code:
<!doctype html> <html> <head> <title>Getting Started Extension\'s Popup</title> <style> body { min-width:357px; overflow-x:hidden; } img { margin:5px; border:2px solid black; vertical-align:middle; width:75px; height:75px; } </style> <!-- JavaScript and HTML must be in separate files for security. --> <script src="popup.js"></script> </head> <body> </body> </html>
// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. var req = new XMLHttpRequest(); req.open( "GET", "http://api.flickr.com/services/rest/?" + "method=flickr.photos.search&" + "api_key=90485e931f687a9b9c2a66bf58a3861a&" + "text=hello%20world&" + "safe_search=1&" + // 1 is "safe" "content_type=1&" + // 1 is "photos only" "sort=relevance&" + // another good one is "interestingness-desc" "per_page=20", true); req.onload = showPhotos; req.send(null); function showPhotos() { var photos = req.responseXML.getElementsByTagName("photo"); for (var i = 0, photo; photo = photos[i]; i++) { var img = document.createElement("image"); img.src = constructImageURL(photo); document.body.appendChild(img); } } // See: http://www.flickr.com/services/api/misc.urls.html function constructImageURL(photo) { return "http://farm" + photo.getAttribute("farm") + ".static.flickr.com/" + photo.getAttribute("server") + "/" + photo.getAttribute("id") + "_" + photo.getAttribute("secret") + "_s.jpg"; }
第三步,在extension的页面重新加载一下就行了。
回顾一下,相比于做HTML5的web程序来讲,extension只是多了一个配置文件manifest.json。其次就是JS里面可以用一些针对extension订制的API。