[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

 

你可能感兴趣的:(chrome)