Tag: jsdom

如何从简单的jsdom函数返回值?

我使用jQuery与jQuery,它工作得很好。 然而,我试图模块化我的代码,所以我不重复自己,所以我做了一些基本的function,从一些HTML(DOM)的jsdom代码,调整它与jQuery,并吐出来。 但是,我无法返回我的结果,因此将其分配给调用var。 我可能不是在正确的地方回来,但我只是没有看到明显的,如果是的话。 可以使用一点帮助。 代码如下: function tweakIt(html_in){ var jsdom = require('jsdom'); jsdom.env({ html: html_in, scripts: [ '../public/javascripts/jquery-1.7.1.min.js', ], done: function(errors, window) { var $ = window.$; // do some jquery magic and manipulate the dom $('body').append('<div>foo</div>'); console.log('Freshly Manipulated HTML: '+ $('body').html()); // it logs perfectly return $('body').html(); // this isn't returned to where I […]

jsdom document.createWindow()对非空文档返回空

我试图在https://github.com/tmpvar/jsdom下的“ 创build一个类似浏览器的BOM / DOM /窗口 ” 一节的简短设置说明中。 不幸的是,在第三行(.createWindow步骤)后,我做了console.log(窗口),它打印一个空的对象。 那里应该至less有window.document,但是没有。 看起来好像document.createWindow和jsdom.createWindow一样。 这是我的代码到目前为止: var jsdom = require('jsdom').jsdom; document = jsdom("<html><head></head><body>hello world</body></html>"); window = document.createWindow(); console.log(window); // output: {} console.log(window.document.innerHTML); // error, cannot read innerHTML on undefined 那么,我做错了什么愚蠢的事情? FYI文件正确创build。 打印它输出一个非常大的物体。 我正在使用Mac。

node.js和jsdom – 没有办法检测到HTTP 500错误返回?

我正在使用jsdom与node.js,我试图让它提供一些指示,发生了一个HTTP错误。 我build立了一个testing服务器,它仅仅为所有的请求返回一个http 500头,但是当我试图用jsdom加载时,jsdom不会抛出任何错误,也不会提供任何可以识别的信息一个http 500错误被返回。 检测http 500错误的最佳方法是什么?

用Mocha设置JSDOM

我试图用sinon的模拟和间谍来testingRedux组件和asynchronous操作,但是一旦我将Sinon导入任何testing文件,运行下面的npm脚本: mocha – 需要testing/ helpers / browser.js –compilers。:babel-core / register –opts test / client / ** / *。{js,jsx} – recursiontesting/客户端 我得到以下错误: var div = typeof document !== "undefined" && document.createElement("div"); ^ TypeError:document.createElement不是… / node_modules / sinon / lib / sinon / util / core / deep-equal.js中的函数:3:55 browser.js是我设置JSDOM的地方: import { JSDOM } from 'jsdom'; const doc […]

jsdom.jsdom缺less一个“createWindow”方法

我正在尝试使用jsdom来分析一些html内容。 我看过的例子使用基于html内容的jsdom.jsdom文档的.createWindow()方法。 但是,当我试图按照这些例子,我的文档没有一个.createWindow()方法。 var getaPage=function (req, res, callback) { jsdom.defaultDocumentFeatures={ FetchExternalResources : ['script'], ProcessExternalResources : ['script'], MutationEvents : '2.0', QuerySelector : false }; var htmlDoc = '<html lang="en-US">' + '</html>'; var tstDocument=jsdom.jsdom(htmlDoc); for (var attr in tstDocument){ if (attr == 'createWindow') { console.log('Found it'); }else{ console.log('not it'); }; }; }; 当我运行这个,我得到了一堆'不是',没有'find它'。 为什么我没有.createWindow()方法?

JSDOM中的NodeIterator或TreeWalker对象

我试图在node.js中使用jsdom来做一个小的转换到HTML文档。 在进行客户端testing时,我使用了document.createTreeWalker和document.createNodeIterator函数,它们是DOM 2规范的一部分 …但是,它们显然不是jsdom的一部分,尽pipe它的作者声称它具有完整的DOM1和DOM2兼容性。 我错过了什么吗? 这些function在由jsdom创build的文档中是否可用? $ node > var jsdom = require('jsdom'); > var doc = jsdom.jsdom('<div>Test</div><div>One</div><div>Two</div>'); > doc.createTreeWalker(doc) TypeError: Object [ null ] has no method 'createTreeWalker' at [object Context]:1:5 at Interface.<anonymous> (repl.js:171:22) at Interface.emit (events.js:64:17) at Interface._onLine (readline.js:153:10) at Interface._line (readline.js:408:8) at Interface._ttyWrite (readline.js:585:14) at ReadStream.<anonymous> (readline.js:73:12) at ReadStream.emit (events.js:81:20) at ReadStream._emitKey […]

我在哪里可以findjsdom文档?

我正在寻找jsdom的文档,这个文档比https://github.com/tmpvar/jsdom中的自述文件更具描述性。 具体来说,我正在寻找如何解释由jsdom创build的DOM节点的nodeType属性的说明。 该物业存储一个整数,没有固有的含义,据我所知。 在直接的例子中,我确信有一些testing可以发现什么DOM节点types的整数映射,但是编写自定义testing和自检代码只是为了绕过这些对象而花费很长时间。 其他问题,我会使用文档是关于如何访问节点的父母直接,遍历子,访问文本数据等(所有通过访问对象属性直接以外的任何jQuery特定的function)。 我在哪里可以find关于DOM节点属性的jsdom文档?

使用jsdom或Canvas获取Vibrant.js色板的node.js

我有一个使用jsdom或Canvas在node.js中获取图像的过程。 在下载过程中,我想在后端使用Vibrant.js提取色板。 下面的代码都不起作用。 使用jsdom const Vibrant = require('node-vibrant'); const request = require('request'); var jsdom = require("jsdom").jsdom; var window = jsdom().defaultView; var document = jsdom('<html><body></body></html>', { features: { FetchExternalResources : ['img'] } }); var imgDom = document.createElement("img"); imgDom.onload = function() { console.log('onload triggered'); // var imgData = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAAAA7ljmRAAAAGElEQVQIW2P4DwcMDAxAfBvMAhEQMYgcACEHG8ELxtbPAAAAAElFTkSuQmCC'; // var imgData = imgDom.replace(/^data:image\/gif;base64,/, "") // var […]

jsdom hashchange事件

在jsdom文件上: document = require('jsdom').jsdom("<html><head></head><body></body></html>"); window = document.createWindow(); 改变它的散列: document.location.href = '#bang'; 不会在window上触发任何'hashchange'事件 有没有人知道这个解决方法? 谢谢

Jsdom抛出一些URL的错误

我是新的nodejs,我想要做的是扫描我的网站(使用javascript和jquery启用)的所有url,并检查该url是否包含给定的string。 要做到这一点我使用jsdom,但是当我启动脚本只提取一些url,然后崩溃给这个错误: timers.js:110 first._onTimeout(); ^ TypeError: Property '_onTimeout' of object [object Object] is not a function at Timer.listOnTimeout [as ontimeout] (timers.js:110:15) 当然有错,但我不明白在哪里.. 这是我的脚本: var request = require('request'); var jsdom = require('jsdom'); request({ uri: 'http://www.example.com' }, function (error, response, html) { if (!error && response.statusCode == 200) { var doc = jsdom.jsdom(html, null, { features: { […]