如何在 background.js 中访问文档/DOM?

问题描述

我正在尝试访问后台脚本中的 DOM 以创建画布元素。如何在 manifest v3 中访问 background.js 中的 DOM?我知道它可以在 v2 中访问。

我正在创建此元素作为 chrome.tabs.captureVisibleTab() 的一部分,这是一种特定于 background.js 的 API 方法

chrome.tabs.get(tabId,function(tab) {
        chrome.tabs.captureVisibleTab(tab.windowId,{ format: "png" },function(dataUrl) {
            (console.log("chrome.tabs.captureVisibleTab() called"))
            if (!canvas) {
                canvas = document.createElement("canvas");
                document.body.appendChild(canvas);
            ...

我目前收到一个错误Error handling response: ReferenceError: document is not defined at chrome-extension://.../background.js

我尝试将文档从内容脚本传递给后台脚本,如下所示:

chrome.runtime.sendMessage({document: document},function(response) {})

但传递的文档不是对象,也没有像 createElement 那样的普通 DOM 方法

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)