我似乎无法让 jsdom 执行外部脚本,而且我似乎找不到任何具体示例。当我调用我的测试函数时,我没有收到任何错误,但什么也没有发生。
这是我的代码:
var window = jsdom.jsdom(body).createWindow();
jsdom.jQueryify(window, './lib/jquery.js', function () {
console.log(window.$("#a1").text());
window.testing();
console.log(window.$("#a2").text());
});
这是它加载的 html:
<html>
<head>
<script type="text/javascript" src="stuff.js"></script>
</head>
<body>
Hi there
<div id="a1">
</div>
<div id="a2">
</div>
</body>
</html>
我的测试函数:
function testing() {
var a2 = document.getElementById("a2");
a2.innerHTML = 'Second div';
console.log("executed");
}
最佳答案
查看 jsdom docs
在你的其余代码之前尝试这个:
require('jsdom').defaultDocumentFeatures = {
FetchExternalResources : ['script'],
ProcessExternalResources : ['script'],
MutationEvents : '2.0',
QuerySelector : false
}
var window = jsdom.jsdom(body).createWindow();
jsdom.jQueryify(window, './lib/jquery.js', function () {
console.log(window.$("#a1").text());
window.testing();
console.log(window.$("#a2").text());
});
/fyi #node.js IRC 欢迎你:http://bit.ly/nodeIRC
关于javascript - jsdom 不加载外部资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5365613/