问题标签 [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 投票
1 回答
372 浏览

javascript - 无法解析格式不正确的 HTML

这是我的 node.js 程序:

和输出:

我认为它不起作用,因为源页面中的 HTML 格式不正确。真的是因为这个吗?如果是的话,有没有办法解决它?

谢谢

0 投票
1 回答
3067 浏览

ajax - 使用 jsdom 加载 ajax 应用程序

我正在寻找一种在服务器上引导客户端应用程序(用 Backbone.js 编写)的解决方案,以便我可以为爬虫和非 js 消费者提供正确的内容。

我一直在尝试使用 jsdom 和 nodejs 来引导应用程序,并且可以将其加载到基本模板内容中,但该应用程序似乎永远不会启动。

我尝试了 2 种不同的解决方案,以确保我拥有所有必要的依赖项并且应用程序正在正确加载:

  1. 我尝试将 jsdom.env() 与通常包含在内的所有脚本一起使用。
  2. 我尝试使用 jsdom.jsdom() 并确保 FetchExternalResources、ProcessExternalResources 和 MutationEvents 都正确且打开。

不过,似乎都没有触发 window.onload 事件。我想知道 jsdom 是否可能不会触发它,或者在它通常会被触发之后调用它的回调?

这是在 jsdom 中可以完成的任务吗?

0 投票
1 回答
712 浏览

javascript - jsdom在哪里下载资源?

我正在使用 Node.js 和 jsdom 查找并下载页面上的所有 css/js/图像,然后将 url 重写为相对的(如 wget --page-requisites --convert-links)。但我想知道如果 jsdom 已经获取资源,我是否还必须完成所有这些工作。如果我打开 FetchExternalResources,那么 jsdom 对它们做了什么?它们是否存储在内存中我可以将它们保存到磁盘的某个地方?

0 投票
0 回答
1288 浏览

javascript - JSDOM 中的 NodeIterator 或 TreeWalker 对象

我正在尝试在 node.js 中使用jsdom对 HTML 文档进行小转换。在进行客户端测试时,我使用了document.createTreeWalkeranddocument.createNodeIterator函数,它们是DOM 2 规范的一部分……但是,它们显然不是 jsdom 的一部分,尽管它的作者声称它具有完整的 DOM1 和 DOM2 兼容性。我错过了什么吗?这些功能在 jsdom 创建的文档中可用吗?

0 投票
1 回答
1171 浏览

javascript - 双面模板与服务器端 DOM 操作

我正在制作一个需要在页面上为搜索引擎机器人完全呈现动态内容的应用程序——如果我使用 JS 模板来控制内容,这可能是一个问题。据说网络蜘蛛在索引 RIA 网站方面做得越来越好,但我不想冒险。此外,由于移动互联网在大多数地方仍然参差不齐,因此最初最大化服务器负载以确保基本功能/样式/动态内容显示在您的页面上似乎是一个好习惯,即使客户端没有下载任何 JS图书馆。

这就是我偶然发现双面模板的方式:

问题:如何允许在浏览器中进行动态的、Ajax 风格的渲染,同时在初始页面加载时从服务器输出?

C。2010 年:双面模板 在浏览器和服务器上都使用一个模板,在适当的地方渲染内容——通常是在页面加载时服务器和应用程序运行时浏览器。例如,博客评论。您使用服务器端模板从服务器输出所有现有评论。然后,当用户发表新评论时,您可以使用浏览器端模板呈现它的预览以及最终版本。

我想尝试使用 Node.js 和 Eco 模板进行双面模板,但我不知道如何进行。我是 JavaScript 和 Node.js 的新手。

据说Node-Lift有帮助,但我不明白它在做什么或为什么。

有人可以提供有关如何在移动 Web 应用程序上下文中使用双模板的高级概述吗?

使用 jQuery 和 JSDOM 进行的服务器端 DOM 操作在哪里适合?

TIA

0 投票
1 回答
302 浏览

javascript - Node.js:JSDOM 移除内联事件

在原始 html 上使用 JSDOM 模块时,它会删除任何内联事件的痕迹。我不知道为什么它会如此武断地这样做。

有没有人找到解决这个问题的方法,还是我做错了什么?

例子:

此代码将输出

0 投票
4 回答
1230 浏览

jquery - 使用 node.js 在 Windows 上抓取网站

试图让 jsdom(node.js 模块)在 Windows 上工作。一直抱怨没有为我的节点版本构建。

将节点(相同版本,0.5.9,来自源代码)安装在 linux 机器上并对其进行节点处理。然后我将它复制到Windows机器(在node_modules下)

还是不行...

有任何想法吗?或从节点发出的请求的响应中获得的解析 HTML 的其他建议?

通过 jsdom 使用 jquery 会很不错。

干杯。

0 投票
2 回答
769 浏览

dom - jsdom窗口缓存

在 express.js 中使用 jsdom.jsdom() 我创建了一个带有一些“基本”布局标记的文档,并将一些客户端库(例如 jQuery)附加到它的窗口。

只需要进行一次此设置会很好。

问题是窗口文档的 DOM 会根据请求的 url 而改变。有没有办法让每个请求从同一个缓存窗口对象开始并增强它,还是必须在每个请求上从头开始设置?

0 投票
1 回答
5570 浏览

node.js - 使用 highcharts 在服务器端生成 svg

我在节点 js 中确实需要('jsdom'),但我经常找不到 jsdom 模块。此外,我想在服务器上使用 highcharts 生成一个 svg 文档,以便以后可以在我的 pdf 中使用该图像(我将使用 batik 将该 svg 转换为图像)。有没有可以帮助我的链接。我已经阅读了http://blog.davidpadbury.com/2010/10/03/using-nodejs-to-render-js-charts-on-server/ 但原型没有多大意义。是否有一个已经实现的模块而不仅仅是一个原型。

0 投票
4 回答
5377 浏览

javascript - 如何调用脚本标签中定义的javascript函数?

例子:

我该怎么打电话test()

编辑:我没有正确解释这一点。

我正在使用 node.js 的请求模块来加载包含 javascript 函数的外部 html 文件:

我只是在寻找在“body”中调用函数的语法。