google chrome浏览器插件开发事件整理:

onCreated 事件

标签创建时,此事件触发。请注意,当事件触发时,标签的 URL 可能没有被设置, 但是当URL被设置时,可以通过onUpdated 事件接听。
 
chrome.tabs.onCreated.addListener(function(Tab tab) {...});
 
onUpdated 事件
URL更新事件监听, 一般访问一个URL会触发两次,
访问的时候触发,状态为loading,
访问完成的时候触发 状态为complete
 
chrome.tabs.onUpdated.addListener(function (id, info, tab) {
    if (tab.status === 'loading') {
        updateBrowserAction(id, tab.url);
    }
});
 
onActivated 事件
当tab页被激活的时候触发
即切换tab页,或者打开关闭tab都会触发。
 
chrome.tabs.onActivated.addListener(function (activeInfo) {
    if (activeInfo.tabId) {
        chrome.tabs.get(activeInfo.tabId, function (tab) {
            updateBrowserAction(tab.id, tab.url);
        });
    }
});
 
onRemoved 事件
当关闭tab页时,被触发。
 
// Cleanup the variables when a tab is closed
chrome.tabs.onRemoved.addListener(function (id) {
    delete hostnameCache[id];
    delete hostCache[id];
});
操作Create tab
 
新建tab页
 
chrome.tabs.create({
            'url': 'https://www.hnn8.com'
        });
 
执行js
 
chrome.tabs.executeScript(
  tabID,
  {code:"document.body.style.backgroundColor='red'"},
  function(){}
);
 
getCurrent 获取当前tab
 
chrome.tabs.getCurrent(function callback)
 
sendRequest 发送请求
 
chrome.tabs.getSelected(null, function(tab) {
  chrome.tabs.sendRequest(tab.id, {greeting: "hello"}, function(response) {
    console.log(response.farewell);
  });
});
 
发送的请求会被tab.id对应的标签页捕获, 如果需要处理的话,需要注册
chrome.extension.onRequest事件监听器
一般都是在content script 中注册该事件监听器,接受background的请求,
反过来也一样。
 
其他
文档
http://open.chrome.360.cn/extension_dev/tabs.html
 
一般事件的注册都会放在background.js文件中。
而tab的创建都是在主动发起的操作函数中,比如点击按钮等。

 >>谷歌浏览器插件怎么安装