Zombiejs jQuery nullTypeError'compareDocumentPosition'

Joe*_*oel 1 jquery zombie.js jsdom

Zombie:无法读取属性'compareDocumentPosition'的null TypeError:无法读取null的属性'compareDocumentPosition'

每当我尝试使用Zombiejs加载包含jQuery的页面时,就会发生这种情况.在Debian和Windows上发生了这种情况,有各种不同的页面,使用不同版本的jQuery,而页面上没有别的东西.

这似乎与jsDom在页面文档准备好之前评估jQuery的方式有关,但它远远超过我的想象.

任何人遇到这个,知道解决方法,或有任何指针?谢谢!

更新:这是我的测试(实际通过,但运行调试显示我提到的错误):

zombie = require "zombie"
browser = new zombie.Browser({debug: false})
$ = require "jquery"
require "should"    

app = "http://localhost:3000/"

describe "app", ->
  describe "index", ->
    it "should display correct title", (done) ->
      browser.visit app, (err, browser) ->
        done()
Run Code Online (Sandbox Code Playgroud)

这是错误:

Zombie: GET http://localhost:3000/js/jquery-1.7.1.js => 200 Zombie: Cannot read property 'compareDocumentPosition' of null TypeError: Cannot read property 'compareDocumentPosition' of null
    at Object.<anonymous> (/js/jquery-1.7.1.js:4807:30)
    at Object.<anonymous> (/js/jquery-1.7.1.js:5301:2)
    at Object.<anonymous> (/js/jquery-1.7.1.js:9266:2)
    at Object._evaluate (/home/dev/Hg/rpg-chat-bdd/node_modules/zombie/lib/zombie/browser.js:136:28)
    in /js/jquery-1.7.1.js
Run Code Online (Sandbox Code Playgroud)

这会导致其他错误,因为在我的其余脚本中没有定义'$'.

这是我正在测试的页面的HTML:

<title>Welcome to Test!</title>

<body>
  <div id="main">
  </div>

  <script type="text/javascript" src="/js/jquery-1.7.1.js"></script>
  <script type="text/javascript" src="/js/application.js"></script>
</body>
Run Code Online (Sandbox Code Playgroud)

min*_*dia 5

这是一个黑暗中的镜头,但我克隆了https://github.com/assaf/zombie.git并为compareDocumentPosition进行了grepped.文件中找到的第一行是这样的:

if ( document.documentElement.compareDocumentPosition ) {
Run Code Online (Sandbox Code Playgroud)

现在,document.documentElement通常指向<html>-tag,你可能错过了吗?