【问题标题】:jsdom not loading or not running external scripts in pagejsdom未加载或未在页面中运行外部脚本
【发布时间】:2011-06-10 08:17:28
【问题描述】:

来自https://github.com/tmpvar/jsdom/issues#issue/127的交叉发布

我将在第二天左右发布一个最小的测试用例 - 但我想看看其他人是否有同样的问题 - 或者(更有可能)我是否在做一些愚蠢的事情。

我在 Ubuntu 10.04 AMD64 和 jsdom@0.1.23 上使用 NodeJS v2.6。

var file = readFileSync("./www/index.html", "utf8"); var window = jsdom.jsdom(file).createWindow();

所有内联脚本都运行,但抱怨缺少应该由外部脚本提供的变量。

我尝试在选项中设置一个 url,并尝试在 src 属性中使用完整的 (http://...) url,

我已经尝试过 jQuerify(使用默认的 jQuery 路径)并且效果很好,虽然它只引入了 jQuery,但我仍然缺少所有其他脚本。

在我发布失败的代码/网址之前有任何指示吗?

谢谢,

克里斯。

【问题讨论】:

  • 我看到你解决了你的问题...你能发布你是怎么做的吗?

标签: javascript node.js serverside-javascript jsdom


【解决方案1】:

从 jsdom 0.2.0 开始,这变得非常容易了。请参阅readme 中的“简易模式”部分。默认情况下,jsdom.env() 不会执行在页面中找到的脚本,从而使您尝试做的事情变得更加容易。

【讨论】:

  • 谢谢,我过几天试试 0.2.0。
  • 但是根据readme,jsdom.env()不处理外部资源。 “jsdom.env 不会处理外部资源(脚本、图像等)。如果要处理 javascript,请使用以下方法之一(jsdom.jsdom 或 jsdom.jQueryify)”
  • 默认功能部分中的默认设置表明默认情况下启用加载外部脚本也令人困惑。
  • 啊,这仅适用于非 .env() 设置。
【解决方案2】:

我从页面中删除了所有内嵌 Javascript - 幸运的是,该页面在我的控制之下。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-27
    • 2014-04-28
    • 2013-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多