浏览器基本特性

 
 
1.background.js是核心文件,在配置文件中设置"background": { "page": "background.html" },在background.html中引用必要的文件(如background.js,jquery以及其他一些有必要加载的文件); 2.当点击插件图标时,一个background服务就已经开启了; 3.不同页面之间是无法直接通讯的,想要控制不同的页面处理不同的工作,就需要在background.js中定义一系列监听事件(1.点击插件图标的事件;2.新建或更新tab的事件;3.捕捉message的事件等); 4.无论任何新建或更新tab的事件都会被background.js捕捉到,可以做后续处理(比如注入一些js文件); 5.几个特别重要的方法: chrome.tabs.executeScript(tab_id, code_or_action)——指定某个tab运行特定的代码或方法; chrome.runtime.sendMessage { action: 'stop_grab_list', other_params: xxx}——发送消息; chrome.runtime.onMessage.addListener (request, sender, sendResponse) ->——捕捉上面的消息,request.action就能获取'stop_grab_list',request.other_params就能获取xxx。sender就是发消息的主体,用sender.tab就能获得发送消息的tab页;sendResponse用于返回结果; chrome.browserAction.onClicked.addListener (tab) ->定义点击插件图标之后,执行的代码; chrome.tabs.onCreated.addListener (tab) ->——定义新建tab之后自动执行的代码; chrome.tabs.onUpdated.addListener (tab_id, info, tab) ->定义更新tab之后自动执行的代码,其中的info可以调用info.status == 'complete'来判断页面是否已经加载完成,这个很重要!
Java代码   收藏代码
  1. chrome.tabs.onCreated.addListener(function(tab) {  
  2.   stopTimer();   
  3.  if (tab.url.indexOf("renren.com") > 0)     
  4.     startTimer();   
  5. });   

chrome.tabs.onCreated 是在创建一个标签页的时候触发
Java代码   收藏代码
  1. chrome.tabs.onSelectionChanged.addListener(function(tabId, changeInfo) {   
  2.   stopTimer();   
  3.   checkByTabid(tabId);   
  4. });   

chrome.tabs.onSelectionChanged 是在标签页切换的时候触发 
Java代码   收藏代码
  1. chrome.windows.onFocusChanged.addListener(function(windowId) {  
  2.         stopTimer();  
  3.                 chrome.tabs.getSelected(windowId,function(tab){  
  4.                                                         if (tab.url.indexOf("renren.com") > 0)  
  5.                                 startTimer();  
  6.         });  
  7.     });  

chrome.windows.onFocusChanged 是在窗口重新获得焦点的时候触发 
Java代码   收藏代码
  1. chrome.tabs.onUpdated.addListener(function(tabId, changeInfo) {   
  2.   stopTimer();   
  3.   checkByTabid(tabId);   
  4. });   

chrome.tabs.onUpdated 是在浏览器做自发更新的时候触发(不包括人为的输入url,打开书签等)他nnd怎么第二天的时候又能使了,看来是只要url变化就能触发 
看到一句话,you can listen to onUpdated events to be notified when a URL is set.应该是了 
Java代码   收藏代码
  1. chrome.tabs.onRemoved.addListener(function(tabId) {   
  2.   //appendToLog('tabs.onRemoved -- tab: ' + tabId);   
  3.   //loadWindowList();   
  4.   stopTimer();   
  5. });   
  1. chrome.tabs.onUpdated.addListener(function(tabId,changeInfo,tab){  
  2.             var geturl = tab.url;  
  3.             if (changeInfo.status == "loading" && “你自己的条件”)){  
  4.     //调用向安全网址重定向的函数           
  5.                 chrome.webRequest.onBeforeRequest.addListener(  
  6.                     function(details){  
  7.                         return {  
  8.                             redirectUrl:details.url.replace(geturl,“你要重定向的网址”)  
  9.                                };  
  10.                     },    
  11.                     {  
  12.                          urls:[  
  13.                           //适用的网站:到时候要修改  
  14.                             "<all_urls>"  
  15.                               ]  
  16.                     },  
  17.                     [  
  18.                       "blocking"  
  19.                     ]  
  20.                 )  
  21.                   
  22.             }  
  23. });  
但是这个方法在第一次执行的时候,是可以正确执行的,但到第二次就会出错,显示“网址已经重定向到xxxx网址,不能再定向到XXX(此处为第二次输入的网址)”。后面再研究研究这个错误,看怎么解决
相关浏览器差将api开发文档:http://open.chrome.360.cn/extension_dev/events.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值