我开始使用 JSDOM,并且可以正常工作:
jsdom.env(
'<p><a class="the-link" href="https://github.com/tmpvar/jsdom">jsdom\'s Homepage</a></p>',
["http://127.0.0.1:8080/js/test.js"],
function (errors, window) {
//console.log("contents of a.the-link:", window.$("a.the-link").text());
console.log(errors);
console.log(window.myVar);
console.log(window.test);
});
Test.js 脚本非常简单:
console.log("testing testing testing");
window.myVar = "myVar Content";
var test = "test content";
执行脚本时会显示 myVar 和 test 的内容。
但问题是当我开始以硬核方式进行操作时(如文档所说的硬核):
我执行以下操作:
var jsdom = require("jsdom").jsdom;
var document = jsdom("<html><head></head><body>hello world</body></html>");
var window = document.parentWindow;
var script = document.createElement("SCRIPT");
script.src = "http://127.0.0.1:8080/js/test.js";
var head= window.document.getElementsByTagName('head')[0];
head.appendChild(script);
var window = document.parentWindow;
console.log("myVar Content: " + window.myVar);
在这种情况下,window.myVar 是未定义的。
我错过了什么?
谢谢。