更改 JSDom 文档中的全局变量
Change global var inside a JSDom document
我正在尝试创建一个包含全局变量的 JSDom 文档,然后尝试以编程方式更改它的值,然后再次打印输出。
我的代码如下:
const { JSDOM } = require('jsdom');
const dom = new JSDOM(`
<!DOCTYPE html>
<html lang="en">
<meta charset="UTF-8">
<body>
<script>
var myGlobalVar = 'foo';
</script>
</body>
</html>`,
{ runScripts: 'dangerously' });
dom.window.myGlobalVar = 'bar';
console.log(dom.serialize())
我希望输出是相同的文档,但 myGlobalVar
的值更新为 "bar"
。这并没有发生,myGlobalVar
仍然是 "foo"
。
有谁知道我做错了什么以及我想要的是否可行?
在此先感谢您的帮助。
dom.window.myGlobarVar = “bar”
在 window 对象上设置一个 属性 它不会更改您提供给 JSDom 构造函数的 DOM 的内容。如果你 console.log(dom.window.myGlobalVar)
,你应该看到输出为 bar
。
我正在尝试创建一个包含全局变量的 JSDom 文档,然后尝试以编程方式更改它的值,然后再次打印输出。
我的代码如下:
const { JSDOM } = require('jsdom');
const dom = new JSDOM(`
<!DOCTYPE html>
<html lang="en">
<meta charset="UTF-8">
<body>
<script>
var myGlobalVar = 'foo';
</script>
</body>
</html>`,
{ runScripts: 'dangerously' });
dom.window.myGlobalVar = 'bar';
console.log(dom.serialize())
我希望输出是相同的文档,但 myGlobalVar
的值更新为 "bar"
。这并没有发生,myGlobalVar
仍然是 "foo"
。
有谁知道我做错了什么以及我想要的是否可行?
在此先感谢您的帮助。
dom.window.myGlobarVar = “bar”
在 window 对象上设置一个 属性 它不会更改您提供给 JSDom 构造函数的 DOM 的内容。如果你 console.log(dom.window.myGlobalVar)
,你应该看到输出为 bar
。