gpt4 book ai didi

javascript - JSDom 不将文本作为脚本运行

转载 作者:行者123 更新时间:2023-12-02 16:23:19 27 4
gpt4 key购买 nike

根据JSDom README ,您可以传递一个 Javascript 字符串数组来执行,但似乎此功能对我不起作用。

这是我的 Node 应用程序:

var fs = require('fs');
var jsdom = require('jsdom-no-contextify');

var scripts = ['manipulate-dom.js'];
var src = scripts.map(function(filename) {
return fs.readFileSync(filename, 'utf8');
});

console.log(src[0]);

jsdom.env({
html: '<div>Hi</div>',
src: src,
done: function(errors, window) {
console.log(window.document.querySelector('div').textContent);
window.doStuff();
console.log(window.document.querySelector('a').textContent);
}
});

这是我的另一个文件:

console.log('Running JS');

function doStuff() {
var a = document.createElement('a');
a.textContent = 'TEXT!';
window.document.body.appendChild(a);
}

window.doStuff = doStuff;

输出如下:

console.log('Running JS');

function doStuff() {
var a = document.createElement('a');
a.textContent = 'TEXT!';
window.document.appendChild(a);
}

window.doStuff = doStuff;
Hi

...
window.doStuff();
^
TypeError: Object #<Window> has no method 'doStuff'

它甚至不打印“Running JS”。我做错了什么?

最佳答案

尝试观察“错误”对象中的内容。根据文档:如果窗口创建成功并且没有 s 导致错误,则错误将为 null,并且窗口将可用。

您的问题可能会在那里被揭露。 =)

关于javascript - JSDom 不将文本作为脚本运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28908445/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com