插件开发常用api整理

1. 核心架构 API
chrome.runtime
// 插件生命周期
chrome.runtime.onInstalled.addListener()
chrome.runtime.onStartup.addListener()

// 消息通信
chrome.runtime.sendMessage()
chrome.runtime.onMessage.addListener()
chrome.runtime.connect()
chrome.runtime.onConnect.addListener()

// 获取URL
chrome.runtime.getURL()
chrome.runtime.getBackgroundPage()

// 管理插件
chrome.runtime.reload()
chrome.runtime.restart()
chrome.extension
// 获取视图
chrome.extension.getBackgroundPage()
chrome.extension.getViews()

// 消息通信(较老API,建议用runtime)
chrome.extension.sendMessage()
chrome.extension.onMessage.addListener()
2. 用户界面 API
chrome.action (Manifest V3)
// 浏览器工具栏按钮
chrome.action.onClicked.addListener()
chrome.action.setIcon()
chrome.action.setTitle()
chrome.action.setBadgeText()
chrome.action.setBadgeBackgroundColor()
chrome.action.enable()
chrome.action.disable()
chrome.browserAction (Manifest V2)
// 浏览器工具栏按钮(V2)
chrome.browserAction.onClicked.addListener()
chrome.browserAction.setIcon()
chrome.browserAction.setTitle()
chrome.pageAction
// 页面相关操作
chrome.pageAction.show()
chrome.pageAction.hide()
chrome.pageAction.onClicked.addListener()
3. 标签页管理 API
chrome.tabs
// 查询和获取标签页
chrome.tabs.query()
chrome.tabs.get()
chrome.tabs.getCurrent()

// 创建和操作标签页
chrome.tabs.create()
chrome.tabs.update()
chrome.tabs.reload()
chrome.tabs.remove()
chrome.tabs.duplicate()

// 消息通信
chrome.tabs.sendMessage()
chrome.tabs.executeScript() // V2 only

// 事件监听
chrome.tabs.onCreated.addListener()
chrome.tabs.onUpdated.addListener()
chrome.tabs.onRemoved.addListener()
chrome.tabs.onActivated.addListener()
4. 窗口管理 API
chrome.windows
// 窗口操作
chrome.windows.create()
chrome.windows.update()
chrome.windows.remove()
chrome.windows.get()
chrome.windows.getAll()

// 事件监听
chrome.windows.onCreated.addListener()
chrome.windows.onRemoved.addListener()
chrome.windows.onFocusChanged.addListener()
5. 存储 API
chrome.storage
// 本地存储
chrome.storage.local.set()
chrome.storage.local.get()
chrome.storage.local.remove()
chrome.storage.local.clear()

// 同步存储(跨设备同步)
chrome.storage.sync.set()
chrome.storage.sync.get()
chrome.storage.sync.remove()

// 会话存储(临时)
chrome.storage.session.set() // V3 only
chrome.storage.session.get()

// 事件监听
chrome.storage.onChanged.addListener()
网络请求 API
chrome.webRequest
// 请求拦截和修改
chrome.webRequest.onBeforeRequest.addListener()
chrome.webRequest.onBeforeSendHeaders.addListener()
chrome.webRequest.onHeadersReceived.addListener()
chrome.webRequest.onCompleted.addListener()
chrome.webRequest.onErrorOccurred.addListener()

// 权限需要:"webRequest", "webRequestBlocking"
chrome.declarativeNetRequest (V3)
// 声明式网络请求(V3推荐)
chrome.declarativeNetRequest.updateDynamicRules()
chrome.declarativeNetRequest.getDynamicRules()
7. 内容脚本相关 API
chrome.scripting (V3)
// 注入内容脚本
chrome.scripting.executeScript()
chrome.scripting.insertCSS()
chrome.scripting.removeCSS()

// 注册内容脚本
chrome.scripting.registerContentScripts()
chrome.scripting.unregisterContentScripts()
8. 通知 API
chrome.notifications
// 创建和管理通知
chrome.notifications.create()
chrome.notifications.update()
chrome.notifications.clear()
chrome.notifications.getAll()

// 事件监听
chrome.notifications.onClicked.addListener()
chrome.notifications.onClosed.addListener()
chrome.notifications.onButtonClicked.addListener()
9. 上下文菜单 API
chrome.contextMenus
// 创建菜单项
chrome.contextMenus.create()
chrome.contextMenus.update()
chrome.contextMenus.remove()
chrome.contextMenus.removeAll()

// 事件监听
chrome.contextMenus.onClicked.addListener()
10. 书签和历史 API
chrome.bookmarks
// 书签操作
chrome.bookmarks.create()
chrome.bookmarks.update()
chrome.bookmarks.remove()
chrome.bookmarks.search()
chrome.bookmarks.getTree()
chrome.history
// 浏览历史
chrome.history.search()
chrome.history.addUrl()
chrome.history.deleteUrl()
chrome.history.deleteRange()
11. 下载管理 API
chrome.downloads
// 下载操作
chrome.downloads.download()
chrome.downloads.pause()
chrome.downloads.resume()
chrome.downloads.cancel()
chrome.downloads.erase()

// 搜索和获取
chrome.downloads.search()
chrome.downloads.getFileIcon()

// 事件监听
chrome.downloads.onCreated.addListener()
chrome.downloads.onChanged.addListener()
12. 权限和隐私 API
chrome.permissions
// 权限管理
chrome.permissions.request()
chrome.permissions.contains()
chrome.permissions.getAll()
chrome.permissions.remove()

// 事件监听
chrome.permissions.onAdded.addListener()
chrome.permissions.onRemoved.addListener()
chrome.privacy
// 隐私设置
chrome.privacy.websites.thirdPartyCookiesAllowed
chrome.privacy.network.networkPredictionEnabled
13. 系统相关 API
chrome.system
// CPU和内存信息
chrome.system.cpu.getInfo()
chrome.system.memory.getInfo()

// 显示和电源
chrome.system.display.getInfo()
chrome.system.power.getInfo()
chrome.idle
// 系统空闲状态
chrome.idle.queryState()
chrome.idle.setDetectionInterval()

// 事件监听
chrome.idle.onStateChanged.addListener()
14. 开发者工具 API
chrome.devtools
// 开发者工具面板
chrome.devtools.panels.create()
chrome.devtools.inspectedWindow.eval()
chrome.devtools.network.getHAR()
常用 API 组合示例
消息通信
// background.js
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
  if (message.action === 'getData') {
    chrome.storage.local.get('data', (result) => {
      sendResponse(result);
    });
    return true; // 保持消息通道开放
  }
});

// content-script.js
chrome.runtime.sendMessage({action: 'getData'}, (response) => {
  console.log('Received:', response);
});
标签页操作
// 在当前标签页执行脚本
chrome.tabs.query({active: true, currentWindow: true}, (tabs) => {
  chrome.tabs.sendMessage(tabs[0].id, {action: 'modifyPage'});
});

// 创建新标签页
chrome.tabs.create({url: 'https://example.com'});
数据存储
// 保存数据
chrome.storage.local.set({key: 'value'}, () => {
  console.log('Data saved');
});

// 读取数据
chrome.storage.local.get(['key'], (result) => {
  console.log('Data loaded:', result.key);
});
Logo

为武汉地区的开发者提供学习、交流和合作的平台。社区聚集了众多技术爱好者和专业人士,涵盖了多个领域,包括人工智能、大数据、云计算、区块链等。社区定期举办技术分享、培训和活动,为开发者提供更多的学习和交流机会。

更多推荐