如何修改通过 Chrome 扩展程序创建的选项卡的 DOM

问题描述

我想创建一个新选项卡并使用 manifest V3 修改 Chrome 扩展的 background.js 中的 DOM:

  chrome.tabs.create({ url : 'http://example.com'},function(newTab) {
    document.body.innerHTML = "Example.com website content modified in tab "+ newTab.id + "!";
  }

但是为什么这没有任何作用,以及如何解决这个问题?

以下也不起作用:

  chrome.tabs.create({ url : 'http://example.com'},function(newTab) {
    function myScript(){
            document.body.innerHTML = "Example.com website content modified in tab "+ newTab.id + "!";
    }

    chrome.scripting.executeScript( {
                    target: {tabId: newTab.id},function: myScript,});
  }

解决方法

background.js 无法访问页面的 dom,您必须运行内容脚本并使用 messaging 在后台脚本和内容脚本之间进行通信。