问题标签 [jsdom]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3457 浏览

javascript - jsdom未加载或未在页面中运行外部脚本

从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,而且我仍然缺少所有其他脚本。

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

谢谢,

克里斯。

0 投票
1 回答
3854 浏览

javascript - jsdom不加载外部资源

我似乎无法让 jsdom 执行外部脚本,而且我似乎找不到任何具体的例子。当我调用我的测试函数时,我没有收到任何错误,但没有任何反应。

这是我的代码:

这是其加载的html:

我的测试功能:

0 投票
1 回答
4597 浏览

javascript - jsdom.env() 和 jsdom.jsdom 有什么区别?

我对如何使用 jsdom 仍然一头雾水。jsdom.env() 和 jsdom.jsdom 有什么区别?

0 投票
1 回答
1413 浏览

javascript - nodejs + jsdom,jQuery 奇怪的行为

下面的代码只是我 server.js 文件中的一小段代码,仅用于运行 jsdom 文档提供的测试。

我得到的输出只是inside然后服务器挂起并且永远不会返回。我添加了一个调试语句console.log(window);来查看窗口对象是否真正被创建,并且我最终得到了一个相当大的输出语句,详细说明了对象的内容。然而,我确实注意到的一件事是输出没有显示这$window对象的定义方法,实际上是console.log(window.$);renders undefined

我知道 jsdom 仍处于开发模式,但是我在这里缺少什么吗?

正如一些背景知识一样,我尝试了代码的几种变体,包括使用该jsdom.env()方法以及从现有的 HTML 标记构建文档,这两种方法都没有呈现预期的结果。

0 投票
1 回答
253 浏览

javascript - JSDOM 可以用来设置一个项目旺盛的 ctags 吗?

对优秀的 javascript ctags 支持的期待让我一直在思考是否可以使用像http://zombie.labnotes.org/这样的项目来设置 ctags 以让 vim 用户满意。

0 投票
4 回答
10327 浏览

javascript - jsdom的用例有哪些

看完这篇微模板是死文章。我开始好奇:

  1. 在服务器上使用 DOM 是否会产生比模板更清晰、更易于维护的代码。
  2. 使用 jsdom 代替模板引擎是否更有效。
  3. 如何将 jsdom 纳入标准 MVC 设置的视图中。

通常在什么情况下最好使用服务器端 DOM 抽象,比如jsdom而不是模板引擎,比如EJSjam

该问题特定于node.js和其他 SSJS

0 投票
1 回答
2161 浏览

javascript - 如何将 jsdom.jQueryify 与 jasmine-node 一起使用?

是否可以使用 jsdom 的 jQueryify 功能来使用 jasmine-node?我想要做的是使用 NodeJS 来测试一些依赖于 DOM 存在的 JavaScript。

这是我尝试过的简化案例。当我运行脚本时,jasmine-node 识别规范,但不运行expect()

或者,在假定类似浏览器的环境的 NodeJS 中测试东西是否有不同/更好的方法?

0 投票
2 回答
6737 浏览

jquery - 使用 jsdom 和 node.js 发布表单

我正在使用 jsdom、jquery 和 node.js 来抓取网站。有什么方法可以发布表单并使用 jsdom 获取生成的下一页窗口。

这是代码

这是需要提交的表单,$('#airbotForm')并且必须捕获生成的页面。

有人可以帮忙吗?谢谢

0 投票
1 回答
368 浏览

dom - 我可以使用nodeJS jsdom访问事件监听器的函数体吗

我正在将 jsdom 与 nodeJS 一起使用。我加载了一个大型 HTML 文档,并使用 jQuery 来导航 DOM。我有一个案例,我有一个元素,我需要访问事件监听器的函数体(onclick)。事件侦听器已添加到源 HTML 中:

DOM 元素的 onclick 属性未定义。

顺便说一句:我真正想做的是获取源中指定的 URL(请注意,<rest-of-url> 不是源中的内容,而是存在真正的 URL 规范)。

0 投票
3 回答
1932 浏览

jquery - 将 require('jquery') 与 jsdom 一起使用?

我可以使用 JSDOM 的“脚本”选项来加载 jquery 进行抓取。但是我想知道现在 npm 包含 jquery 是否有可能,以及更好或更坏,使用节点自己的 require 机制。

一切正常并显示更新的文档。但是这些天我们也可以运行:

我发现它更整洁 - 我只是不太确定如何以这种更新的方式使用 jquery 和 jsdom。具体来说,window 对象在哪里?