谢谢你的帮助。
使用jsdom,我尝试加载一个本地HTML文件,该文件本身加载一个本地JS文件。
import jsdom from 'jsdom-no-contextify'
var fs = require('fs');
var path = require("path");
var html = fs.readFileSync(path.join(__dirname, '../src/', 'launcher.html'));
global.document = jsdom.jsdom(html, {
FetchExternalResources: ['script'],
ProcessExternalResources: ['script'],
created: function (error, window) {
console.log("created: " + error);
},
url: "file://mydir/src/js/helloworld.js"
});
global.window = document.parentWindow;
window.addEventListener('load', function () {
});
launcher.html
本身就是helloworld.js
的来源,即
<script type="text/javascript" src="js/helloworld.js"></script>
但是,我不能访问或读取helloworld.js
中的任何变量
问候你,山姆
发布于 2018-04-19 08:08:34
您需要添加runsScripts和资源属性,如下所示
global.document = jsdom.jsdom(html, {
FetchExternalResources: ['script'],
ProcessExternalResources: ['script'],
created: function (error, window) {
console.log("created: " + error);
},
url: "file://mydir/src/js/helloworld.js",
runScripts: "dangerously",
resources:'usable'
});
https://stackoverflow.com/questions/48081517
复制相似问题