首页 >> chrome插件开发 >> chrome插件开发:前端chrome.tabs事件整理
chrome插件开发:前端chrome.tabs事件整理
发布时间: 2020年5月14日 | 浏览:
| 分类: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的创建都是在主动发起的操作函数中,比如点击按钮等。