首页 > 解决方案 > 如何在 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) {})

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

标签: google-chromegoogle-chrome-extensionmanifestbrowser-extension

解决方案


推荐阅读