You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chrome扩展Manifest V3:右键菜单触发页面控制台命令实现问询

让Chrome扩展右键菜单命令在当前页面控制台执行

要实现右键菜单触发的代码在当前操作页面的控制台输出,你需要通过脚本注入的方式将代码执行在页面上下文,而非后台服务工作者的上下文里。以下是具体修改步骤:

1. 更新 manifest.json

需要添加scripting权限,Manifest V3中注入脚本必须声明该权限:

{
  "name": "Hello",
  "description": "Hello world",
  "version": "0.1.107",
  "permissions": ["contextMenus", "scripting"],
  "host_permissions": ["<all_urls>"],
  "background": {
    "service_worker": "background.js"
  },
  "manifest_version": 3
}

2. 修改 background.js

将原来直接在后台打印的逻辑,替换为调用chrome.scripting.executeScript向当前标签页注入执行代码的函数:

chrome.contextMenus.create({
  id: 'hello',
  title: 'Hello world',
  contexts: ['page']
})

function contextClick(info, tab) {
  const { menuItemId } = info

  if (menuItemId === 'hello') {
    // 向当前标签页注入脚本,在页面上下文执行console.log
    chrome.scripting.executeScript({
      target: { tabId: tab.id },
      func: () => {
        console.log("Hello world");
      }
    });
  }
}

chrome.contextMenus.onClicked.addListener(contextClick);

原理说明

  • 原来的console.log运行在后台服务工作者的控制台中,所以你只能在扩展的后台页面控制台看到输出。
  • 通过chrome.scripting.executeScript注入的函数会在当前页面的上下文环境中执行,对应的console.log就会出现在该页面的开发者工具控制台里。

内容的提问来源于stack exchange,提问作者csalamade

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 18:22:11