【问题标题】:Variable reference from external script in jsdomjsdom中外部脚本的变量引用
【发布时间】:2015-06-21 22:40:52
【问题描述】:

以下是使用script 参数的jsdom 代码的最小示例。尽管所有的尝试都试图找到一种引用外部 JS 的方法,但我一直得到这个

ReferenceError: exVar 未定义

有谁知道这里的问题是什么以及如何解决它?

stackOverTest.js

var jsdom = require("jsdom");

jsdom.env({
    "html": "<html><body></body></html>",
    scripts: [__dirname + "exScript.js"],
    done: function(er, win) {
    console.log("exVar: ", exVar);
    }
});

exScript.js

var exVar = "test";

【问题讨论】:

  • 试试__dirname + "/exScript.js"
  • @laggingreflex,很遗憾,您的建议没有帮助
  • 您的exScript.js 是否与您的stackOverTest.js 在同一目录中?
  • @laggingreflex,是的。

标签: javascript node.js jsdom


【解决方案1】:

你需要使用win作用域:console.log("exVar: ", win.exVar);__dirname + "/exScript.js"

【讨论】:

  • exVarwin 的范围内未定义。我真的不明白为什么window 与使用外部脚本有关?
  • 你按照我的建议做了?请给我看最终脚本。
  • 我的错!我没有注意到你回答的后半部分,这已经在我第一篇文章的评论中提到了。现在它,工作!谢谢!
  • 从 v10 开始,jsdom 有了新的 API。要使用此语法,您应该将导入更改为:const jsdom = require('jsdom/lib/old-api.js'); 有关详细信息,请参阅readme
猜你喜欢
  • 1970-01-01
  • 2017-11-04
  • 2013-10-29
  • 1970-01-01
  • 2011-06-10
  • 1970-01-01
  • 1970-01-01
  • 2021-02-24
  • 2018-05-07
相关资源
最近更新 更多