Tag: jsdom

安装NodeJS contextify包会产生错误

我是1个小时进入NodeJS,所以忍受着我。 我的项目需要的一个包是JSDom。 在刺激了大部分互联网之后,我发现JSDOm有一个名为contextify的依赖关系,这在某种程度上是在JSDom安装本身内部处理的。 所以这就是我所做的: sudo npm install jsdom 一切顺利,直到我得到以下几点: gyp WARN install got an error, rolling back install gyp ERR! rebuild error Error: EACCES, stat '/root/.node-gyp/0.8.2' gyp ERR! not ok npm ERR! contextify@0.1.7 install: `node-gyp rebuild` npm ERR! `sh "-c" "node-gyp rebuild"` failed with 1 npm ERR! npm ERR! Failed at the contextify@0.1.7 install script. […]

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

我仍然模糊了如何使用jsdom。 jsdom.env()和jsdom.jsdom有什么区别?

npm不在Windows中安装jsdom

我用jQuery在node.js中构build一个应用程序,但是当我尝试执行时,它说它找不到模块jsdom所以即使我不明白为什么安装jQuery没有安装这个依赖项,我手动npm install jsdom ,错误信息: MSBUILD:错误MSB3428:无法加载Visual C ++组件“VCBuild.exe”。 要解决这个问题,1)安装.NET Framework 2.0 SDK,2)安装Microsoft Visual Studio 2005或者3)将组件的位置添加到系统path(如果它安装在别处)。 [C:\网站\ MYAPP \ node_modules \ jsdom \ node_modules \ contextify \build立\ binding.sln] 我尝试了第一个选项,但仍然没有帮助。 我是什么(错过了?做错了)?

jsdom不处理网页内的脚本

我是nodejs的新手。 我想用jsdomparsing一些可能包含脚本代码的网页。 但我得到错误说,函数或variables没有定义。 任何人都可以提供一些方向 我的代码 var jsdom = require('jsdom'); jsdom.env({ html: 'http://10.200.0.10:8080/test/a.html', scripts: [ 'http://code.jquery.com/jquery-1.5.min.js' ], done: function(errors, window) { var $ = window.$; window.onload(); console.log(window.a); } }); 和这里的html页面 <html> <head> <script> var a = 0; function loads(){ a=1000; } </script> </head> <body onload='loads()'> </body> </html> 并得到下面的错误信息 dfddddfdf undefined:1: ReferenceError: loads is not defined loads() […]

D3JS:如何将SVG文本转换为path?

有没有一种D3.js的方式来将文本元素转换为path元素? 所以当我抓住生成的SVG,我可以保留我的文字形状。

Node.js抓取,转换图像src – >完整的URL

我使用Cheerio(https://github.com/MatthewMueller/cheerio)来抓取网站,并获取我正在进行的项目的图像。 我想知道是否有一个简单的方法与Node.js(或另一个包)将$(img).attr('src')转换为完全限定的URL? 有时我会得到“image.jpg”和其他时间“../../image.jpg”,其他时间“//somepath/image.jpg”。 也许我只是错过了某种types的正则expression式感谢您的时间:)

jsdom – document.querySelector启用,但从文档中丢失

我想使用JSDom来执行一些服务器方面的DOM操作。 但是,尽pipe显式启用了querySelector,但在创build的文档中未定义: var jsdom = require('jsdom'); // Yep, we've got QuerySelector turned on jsdom.defaultDocumentFeatures = { QuerySelector: true }; var dom = jsdom.defaultLevel; var document = jsdom.jsdom("<html><body><h1>Hello StackOverflow</h1></body></html>"), window = document.createWindow(); 然而: console.log(document.querySelector) 返回 undefined 我怎样才能使document.querySelector正常使用jsdom?

nodeJS中的JSDOM:如何找回被操作的html?

我想操纵一个远程HTML并返回它操纵。 我决定使用JSDOM,但不知道如何获得操纵的HTML回来。 有任何想法吗? jsdom.env({ url: "http://www.cnn.com", scripts: ["http://code.jquery.com/jquery.js"], done: function (err, window) { var $ = window.$; console.log("HN Links"); var src = $(".ghciTopStoryImage1 img").attr('src','http://lorempixel.com/396/220/'); var headline = $(".blkbigheader span").html('header'); var description = $(".blkbigheader").parent().find("pa:eq(0)").html('text'); // not working…. content =$(window.document).html(); } });

使用NodeJS生成服务器端HighStock图表

我正在使用HighStock在浏览器中生成一些图表。 但是现在我想把它们中的一些存储在服务器上。 所以我知道HighCharts可以被导出到服务器,但是如果可能的话,我宁愿使用其他方式。 事情是在服务器上运行HighStock并将svg转换为某种图像格式,然后将其存储在那里。 快速的谷歌search给我这个网页 。 结合HighCharts和NodeJS似乎是正确的方法,但这种解决scheme不适用于较新版本的HighCharts。 更确切地说,在NodeJS中使用jsdom模块(v0.2.10 – 最新版本)和HighStock v1.0.2(请看下面的代码): var jsdom = require('jsdom'); var fs = require('fs'); var jQuery = fs.readFileSync('./js/jquery-1.7.min.js').toString(); var Highstock = fs.readFileSync('./js/highstock.js').toString(); jsdom.env({ html: '<div id="container"></div>', src: [ jQuery, Highstock ], done: function(errors, window) { if (errors) return console.log(errors); var Highcharts = window.Highcharts; var chart = new Highcharts.Chart(options); } }); […]

用JSDOM模拟在线/离线

我们正在编写一个教程,介绍离线的第一个应用程序的基础知识,并使用带有磁带的JSDOM来testing我们的代码。 在我们的代码中,我们更新了DOM,以便通过将事件监听器附加到窗口并监听“在线”/“离线”事件,以及navigator.onLine ,文本节点从说“在线”变为“离线”,反之亦然将文本初始化为在线/离线。 像这样: // get the online status element from the DOM var onlineStatusDom = document.querySelector('.online-status'); // navigator.onLine will be true when online and false when offline. We update the text in the online status element in the dom to reflect the online status from navigator.onLine if (navigator.onLine) { onlineStatusDom.innerText = 'online'; } else […]