[Extension]Chrome 心路历程

开始做的时候,真不知道从哪开始下手,还好360业界良心有份Chrome Extension 的中文翻译文档

http://open.chrome.360.cn/extension_dev/tabs.html

 

有两个最有难度了(个人认为):

1.XMLHTTPRequest

该协议只能请求到xml文档,导致之前一个重试的html响应不到,最后只能重新写一个xml返回

2.chrome API异步

由于是异步,不能调用自己类中的方法。最后解决方法是写成两个类,异步类调用另一个类的方法

下面贴伤代码:

 1 var kittenGenerator = {
 2   GetItem:function(){
 3     var item=null
 4     chrome.windows.getCurrent(function(window){
 5       chrome.tabs.getSelected(window.id,function(tab){
 6         url=tab.url.split('/')[3]
 7         item=url.substr(0,url.indexOf('.'))
 8         url='http://www.kjt.name:8888/getRelByItem/'+item
 9         isw.requestKittens(url)
10       })
11     })
12     return item
13   }
14 
15 };
16 
17 var isw={
18   requestKittens: function(url) {
19     var req = new XMLHttpRequest();
20     req.open("GET", url, true);
21     req.onload = this.showPhotos_.bind(this);
22     req.send(null);
23   },
24 
25   showPhotos_: function (e) {
26     var kittens = e.target.responseXML.querySelectorAll('task');
27     var urls=new Array()
28     for (var i = 0; i < kittens.length; i++) {
29       imgsrc=this.constructKittenURL_(kittens[i]);
30       urls[i]=imgsrc
31     }
32     chrome.windows.create({
33       'url':urls
34     })
35   },
36 
37   constructKittenURL_: function (photo) {
38     return photo.getAttribute("href")
39   }
40 }
41 
42 chrome.browserAction.onClicked.addListener(function(){
43   kittenGenerator.GetItem()
44 })
View Code

 

posted @ 2013-09-25 02:15  hhhyde  阅读(354)  评论(0编辑  收藏  举报