#3127·jsdom

目前无法在 beforeParse 中调用 getInternalVMContext

作者: KnisterPeter创建于 2021年2月24日更新于 2026年9月17日

基本信息:

  • Node.js 版本:任意版本
  • jsdom 版本:最新版(16.x.x)

最小重现案例:

javascript
const { JSDOM } = require("jsdom");
const { Script } = require("script");

const script = new Script('...');

const dom = new JSDOM(`
  <html></html>
`, {
  beforeParse(window) {
    // 这里失败,因为 `dom` 无法访问。
    // 在给定的 `window` 中,无法从上下文中获取上下文(我认为这是由于 _globalProxy 问题造成的)。
    script.runInContext(dom.getInternalVMContext());
  }
});

### 在浏览器中类似的代码如何运行?

不适用,因为没有类似的 API。
设置此功能的原因是创建多个 JSDOM 实例并在它们之间共享预编译脚本。这些实例需要在解析开始前设置并使可用。