google-chrome - 如何在 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
解决方案
推荐阅读
- java - 如何优化有关 if 条件的逻辑?
- javascript - SVG - 使用带有转换元素的 checkIntersection()
- react-native - 跨函数更改变量值,例如 React Native 中的全局变量?
- java - 如何在 Textview 中显示数据 2 秒(android Studio)?
- python-3.x - 在 Python Pandas 数据框中寻找更智能的方法来处理多个版本的值
- python - 如何在某个位置将数字从列表更改为另一个?
- angularjs - 为什么必须使用数组在 AngularJS 中使用控制器进行依赖注入,而不是用于其他函数和方法?
- ios - Xcode11 的设备支持文件 (iOS 14)
- python - django 在创建用户时发出未创建用户配置文件的信号
- python - 如何从 php 访问 $_SESSION var 到 python