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'来判断页面是否已经加载完成,这个很重要!
- chrome.tabs.onCreated.addListener(function(tab) {
- stopTimer();
- if (tab.url.indexOf("renren.com") > 0)
- startTimer();
- });
chrome.tabs.onCreated 是在创建一个标签页的时候触发
- chrome.tabs.onSelectionChanged.addListener(function(tabId, changeInfo) {
- stopTimer();
- checkByTabid(tabId);
- });
chrome.tabs.onSelectionChanged 是在标签页切换的时候触发
- chrome.windows.onFocusChanged.addListener(function(windowId) {
- stopTimer();
- chrome.tabs.getSelected(windowId,function(tab){
- if (tab.url.indexOf("renren.com") > 0)
- startTimer();
- });
- });
chrome.windows.onFocusChanged 是在窗口重新获得焦点的时候触发
- chrome.tabs.onUpdated.addListener(function(tabId, changeInfo) {
- stopTimer();
- checkByTabid(tabId);
- });
chrome.tabs.onUpdated 是在浏览器做自发更新的时候触发(不包括人为的输入url,打开书签等)他nnd怎么第二天的时候又能使了,看来是只要url变化就能触发
看到一句话,you can listen to onUpdated events to be notified when a URL is set.应该是了
- chrome.tabs.onRemoved.addListener(function(tabId) {
- //appendToLog('tabs.onRemoved -- tab: ' + tabId);
- //loadWindowList();
- stopTimer();
- });
但是这个方法在第一次执行的时候,是可以正确执行的,但到第二次就会出错,显示“网址已经重定向到xxxx网址,不能再定向到XXX(此处为第二次输入的网址)”。后面再研究研究这个错误,看怎么解决相关浏览器差将api开发文档:http://open.chrome.360.cn/extension_dev/events.html
浏览器基本特性
最新推荐文章于 2024-07-18 20:36:34 发布