相关疑难解决方法(0)

node.js:jsdom的问题 - jQuery对象返回undefined

我有兴趣为一个项目做一些服务器端的DOM操作,所以我决定看看node.js,特别是在jsdom.我对node.js完全不熟悉,所以我的错误可能是显而易见的,但是我从来没有找到解决我问题的方法......

首先,我在本地运行Windows节点,并使用在线IDE cloud9

值得一提的是,因为我在安装最新的节点jsdom包(0.2.15)时遇到了麻烦,因为在Windows下无法编译所需的依赖性上下文(需要C++和Python,因为我发现npm不支持构建C++包) .所以我采取了两种替代方法:

  1. 我安装了一个不依赖于contextify的旧版本,即jsdom@0.2.1.这是我目前拥有的npm列表

    ??? jsdom@0.2.1
      ??? cssom@0.2.5
      ??? htmlparser@1.7.6
      ??? request@2.10.0
    
    Run Code Online (Sandbox Code Playgroud)

    当我试图运行从jsdom github repo cloud9 采取的简单测试脚本时返回此警告

    The "sys" module is now called "util". It should have a similar
    
    Run Code Online (Sandbox Code Playgroud)

    我试图解决这个问题取代所有提到的sys到util,错误消失了......(仍然不太确定这是正确的事情,虽然......).所以,最后当我试图运行这个片段时

    var jsdom = require("jsdom");
    
    jsdom.env("http://nodejs.org/dist/", [
      'http://code.jquery.com/jquery-1.5.min.js'
    ],
    function(errors, window) {
      console.log("there have been", window.$("a").length, "nodejs releases!");
    });
    
    Run Code Online (Sandbox Code Playgroud)

    我发现了那个window.$ === undefined.试图在cloud9上运行节点v0.6.x和节点v0.4.x,在本地运行节点v0.8.7.

  2. 我尝试做的另一件事是安装最新的jsdom@0.2.15,从这里获得编译的上下文,安装绑定并将其添加到contextify/node_modules,因为contextify依赖于它.我根本无法使它工作=(没有浪费太多时间,因为它似乎是一种错误的方法,并且上下文不是最新的.

    这是npm列表

    ??? jsdom@0.2.15
      ??? contextify@0.1.2
      ? ??? bindings@1.0.0
      ??? cssom@0.2.5
      ??? …
    Run Code Online (Sandbox Code Playgroud)

jquery node.js cloud9-ide jsdom contextify

1
推荐指数
1
解决办法
2421
查看次数

标签 统计

cloud9-ide ×1

contextify ×1

jquery ×1

jsdom ×1

node.js ×1