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

Chrome扩展V3的service worker中如何使用jsdom操作DOM获取DOMParser

Chrome MV3 Service Worker 中使用DOMParser的解决方案

你遇到的jsdom报错属于预期情况:jsdom是面向Node.js环境开发的库,依赖大量Node.js原生API,同时你用的CommonJS require()语法在默认的扩展Service Worker中也不支持,无法直接在该环境下运行。

方案1:优先使用原生DOMParser(推荐,无额外依赖)

Chrome 90及以上版本中,Service Worker全局已经原生支持DOMParser,无需引入任何第三方库,直接使用即可:

const parser = new DOMParser();
// 第二个参数固定为text/html即可解析HTML字符串
const doc = parser.parseFromString(`<!DOCTYPE html><p>Hello world</p>`, 'text/html');
console.log("textContent", doc.querySelector("p").textContent); // 输出 Hello world

方案2:兼容低版本Chrome,使用轻量替代库

如果需要兼容更低版本的Chrome,可以选用专门为Worker环境设计的纯前端HTML解析库,操作步骤如下:

  1. 下载对应库的ES模块版本到你的扩展本地目录中
  2. 修改manifest.json的background配置,开启ES模块支持:
"background": {
    "service_worker": "background.js",
    "type": "module"
},
"manifest_version": 3,
  1. 在background.js中导入并使用:
// 路径替换为你本地存放对应库文件的实际路径
import { DOMParser } from './你下载的解析库文件名.js';
const doc = new DOMParser().parseFromString(`<!DOCTYPE html><p>Hello world</p>`, 'text/html');
console.log("textContent", doc.querySelector("p").textContent);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 02:54:00