问题标签 [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 - Node.js 抓取,转换图片 src -> 完整 URL
我正在使用 Cheerio (https://github.com/MatthewMueller/cheerio) 来抓取网站并获取我正在从事的项目的图像。我想知道 Node.js(或其他包)是否有一种简单的方法可以将 $(img).attr('src') 转换为完全限定的 URL?有时我会得到“image.jpg”,有时会得到“../../image.jpg”,有时会得到“//somepath/image.jpg”。也许我只是缺少某种正则表达式...感谢您的时间:)
javascript - 如何在jsdom中执行外部脚本
我在 products.js 文件中有一个方法,如下所示:
并希望在 jsdom env 回调中执行它:
执行时,它告诉我“未定义处理程序”。我接近了吗?
jquery - jsdom:使用 jQuery 将脚本附加到正文
如何使用 jsdom 和 jQuery 将脚本附加到 DOM 主体?使用的明显答案$('body').append('<script src="..."></script>')
实际上最终会在文档中添加脚本head
。
这是我正在测试的基本 node.js 脚本:
这会导致以下内容:
有趣的是,如果您在其中添加了一个空格,<sc ript src="..."></script>
则会正确附加,所以某些东西(我希望是 jsdom)正在劫持这个脚本,因此它可以添加 cachebuster(?) 并将其放在标题中。是什么导致了这种情况,我该如何防止它发生,所以它会附加脚本?
物有所值,
javascript - 使用 jsdom 和 jasmine-node 未定义的窗口
我有一个文件runspecs.js
初始化一些全局对象,如窗口和文档
现在我在 specs 目录下的唯一文件是 socrates.spec.coffee 及其编译文件 socrates.spec.js:
现在,由于新的苏格拉底没有失败,我们知道至少 global.Socrates 正在通过。它使用 document 和 document.cookie,所以这些也没关系。为什么窗口未定义?
node.js - Node.io、JSDOM 还是 PhantomJs ?或者,YQL-data.html.cssselect?
我需要爬取特定的网站以挖掘出一些相关信息。看起来首先我必须搜索该站点以获取相应的 URL,当被抓取时会给我详细的信息。
假设,搜索 url 是
这意味着,位置和页面可以有city2、city3等。category可以是category2、category3等。
我收集了所有可以递增的城市、类别、位置和页面,直到结果不为空。
得到所有 URL 后,我将不得不从每个 URL 中挖掘出详细信息。我已经看到某些必要的信息作为 javascript 的一部分提供。
现在,我已经看到了 node.io、jsdom 和 phantomjs。我也看过yql。由于我是新手,请根据您的经验建议我,在这种情况下哪个是理想的。
如果你能举出一些例子,那就太棒了。
node.js - jsdom - document.querySelector 已启用,但文档中缺少
我想使用 JSDo 来执行一些基于服务器的 DOM 操作。但是,尽管明确启用了 querySelector,但它在创建的文档中是未定义的:
然而:
退货
如何使用 jsdom 使 document.querySelector 正常工作?
jquery - jsdom和jquery修改dom元素的css样式
我一直在我的 node.js 服务器上使用 jdom 和 jquery,并通过以下代码观察到以下奇怪行为:
我尝试使用我能想到的所有方式在 html 页面上的 div 中添加一些样式(背景颜色为绿色)。以上所有尝试(我也一一尝试,看看是否有任何一个独立工作)产生了相同的结果,相当于:<div id="somedivid" style="">
我想知道这是否是一个错误,因为它不会向其中写入任何样式(引号内始终为空),但如果您检查原始文档,则在这些 div 之前没有样式属性时添加样式属性。将我在页面顶部手动创建的类 sel 添加到自定义 css 样式块中确实可以工作,但是,就像您认为的那样。问题是我真的希望能够在使用 jsdom 时动态更改单个对象的样式。如果这是一个错误或者我忽略了什么,任何人都有任何想法?
顺便说一句,这段代码在运行标准 jquery 的普通浏览器中也能正常工作,就像预期的那样,所以它似乎很可能是 jsdom 实现。
node.js - jsdom 和 node.js 泄漏内存
我发现了一些关于人们遇到类似问题的参考资料,但答案总是如此,请确保在完成后调用 window.close()。但是,这似乎对我不起作用(节点 0.8.14 和 jsdom 0.3.1)
一个简单的复制
我得到的输出是
在这一点上,风扇变得疯狂,测试实际上停止了……或者至少开始变得非常缓慢
除了 window.close 之外,还有没有人有任何其他提示来摆脱内存泄漏(或者它确实看起来像内存泄漏)
谢谢!
彼得
jquery - 为 Cloud Foundry 部署添加 .js 脚本文件
我有一些 node.js 代码正在使用jsdom
,我需要jquery.min.js
后端 css 选择器的文件。事情在本地运行良好,但如果我使用vmc push
on部署api.cloudfoundry.com
,它给了我502 Bad Gateway nginx
我假设我必须在 package.json 中声明所有依赖项,就像这里http://blog.nodejitsu.com/package-dependencies-done-right
但是,我不知道如何包含jquery.min.js
. 现在它在/lib
文件夹而不是/node_modules
文件夹中(因为它不是节点模块)。
有人可以帮助我了解如何为 Cloud Foundry 包含正确的依赖项和其他额外的 .js 文件吗?
更新 1:
这是我删除一堆东西后的代码。如果我注释掉jsdom.env
,则没有错误。
这是我在使用时看到的vmc logs hp-myapp
它不能被上下文化,因为我localhost:3000
跑得很好https://github.com/tmpvar/jsdom/issues/436