问题标签 [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.
javascript - 在 Windows 7 x64 下构建 contextify(用于 NodeJS jQuery)
我尝试让node-jquery工作。contextify是依赖项之一(jsdom需要)。
contextify需要以某种方式使用 Python 构建。但这似乎不适用于 Windows 7 x64。至少一台我的电脑:)
经过一些阅读(#10,#12,#17)并尝试了这个fork和这个提供的一些二进制文件,我可以让它工作......
我从 ( )node-gyp configure
或从node-gyp rebuild
( npm install jquery
) 得到相同的错误:
似乎有一个语法错误......我对 Python 不是很满意。
这是我的版本:
- 蟒蛇:3.2.3
- 节点JS:0.6.14
有人有想法吗?
谢谢!
javascript - Node.js -- 强大的 HTML 解析 + 访问 HTML 中的 javascript 函数
我是节点新手,希望从以下示例页面中提取 javascript 信息:
做作的.html:
Jsdom 使用它的默认解析器阻塞了这个 HTML,所以我使用了来自 github 的 aredridel/html5 解析器。它似乎适用于通过 jQuery 读取 HTML,但我无法访问函数定义,就像我使用 jsdom 及其默认解析器所做的那样。
例如,以下内容:
使用默认解析器给我一个数组。
使用 HTML5 解析器,它给了我:
这是我的代码:
我错过了什么,还是这个功能不可用?
非常感谢。
css - 如何将样式表添加到 JSDOM
我目前正在开发一个项目,该项目需要我通过 JSDOM 将计算样式发送到浏览器。我目前正在寻找一种将一些基本 CSS 注入 JSDOM 的方法,以便它可以计算正确的内联样式(是的,我知道这很糟糕)。
根据我的发现,我可以使用 JSDOM Level 2,但是从那里我找不到任何关于如何注入样式的文档。
这就是我到目前为止所拥有的;
我一直在将 css 插入到 head 标签中,但无济于事。而且我知道我也可能做错了上面的代码。
任何帮助都会很棒。
debugging - jsdom和Contextify错误
我的节点应用程序在我的 macbook 上运行良好,但是当我在 Rackspace 上发布到我们的服务器时,我收到以下我从未见过的错误(敏感路径替换为 [...]):
node.js - 使用 jsdom 获取当前浏览器 DOM?
是否可以使用 jsdom 获取网站的更改/实时 DOM?
例如:
客户
在我的test.html
文件中,我有一个按钮,它附加了新<div class="p">
元素:
然后我有另一个按钮调用服务器上的函数(使用 NowJS 或 Socket.IO)。
服务器
现在,在我的server.js
文件中,我想计算所有附加的div
元素class="p"
:
我知道我可以计算客户端的元素并将其传递给服务器。但如果 jsdom 可以访问“新/当前”DOM,我很感兴趣。
我假设 jsdom 读取 DOM text.html
,但无法访问网站的实时 DOM!?
javascript - jsdom document.createWindow() 为非空文档返回空
我正在尝试遵循“创建类似浏览器的 BOM/DOM/Window ”部分下https://github.com/tmpvar/jsdom上非常简短的设置说明。不幸的是,在第 3 行(.createWindow 步骤)之后,我执行了 console.log(window) 并打印了一个空对象。那里至少应该有 window.document,但没有。似乎 document.createWindow 的行为与 jsdom.createWindow 相同。
到目前为止,这是我的代码:
那么,我做错了什么愚蠢的事情?
FYI 文档已正确创建。打印它会输出一个非常大的对象。
我正在使用 Mac。
javascript - 使用 [jsdom + qs] 抓取 html
我是使用 jsdom 和 querystring 的新手。track_id
我正在尝试为所有iframe html 标签中的所有soundcloud 抓取一个页面。下面的代码记录undefined
了因为第一个 iframe 不是 soundcloud 播放器。
我如何能...
- 修改代码以检索所有 iframe 实例
使用 jsdom/qs检查是否存在
/li>http://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F
或仅存在。soundcloud
(我可以使用 if 字符串包含字符串类型的 js 测试,但我认为使用 jsdom/qs 有更好的方法)。
node.js - 在 mac 上安装 JSDOM 的问题
使用此命令:npm install jsdom,试图让 jsdom 启动并运行以与 node.js 服务器一起使用,我收到以下一系列错误。有人可以帮助澄清这个问题吗?我认为可能还有一个问题,因为它无法安装 contextify ......提前谢谢!
macos - 在 Mac 上运行时分配失败
我有一个在 PC 和 Linux 上运行良好的 node.js 项目,但是在 Mac(Mountain Lion)上运行时,jQuery 模块不起作用。任何对窗口对象属性的赋值都会被忽略。
那是
会抛出异常。任何解决它的想法将不胜感激
对象的原型是undefined
我希望这两件事是相关的。窗口对象是使用 jsdom.createWindow() 创建的(反过来又返回 doc.parentWindow)
似乎是由下面的行引起的
它返回实际对象(没有原型)。
node.js - 如何复制 Chrome 从坏 html 中“解析”DOM 的能力?
我正在使用cheerio 和node.js 来解析网页,然后使用css 选择器在其上查找数据。Cheerio 在格式错误的 html 上表现不佳。jsdom 更宽容,但两者的行为不同,我已经看到在某些情况下另一个工作正常时两者都会中断。
在创建 DOM 时,Chrome 似乎在使用相同格式错误的 html 方面做得很好。
如何复制 Chrome 从格式错误的 HTML 创建 DOM 的能力,然后将此 DOM 的“清理”html 表示形式提供给cheerio 进行处理?
这样我就知道它得到的 html 格式正确。我通过设置 page.content 尝试了 phantomjs,但是当我读取 page.content 的值时,html 仍然格式错误。