2012-02-21 16 views
1

僵尸:无法读取空类型错误的特性“compareDocumentPosition”:无法读取属性“compareDocumentPosition”空Zombiejs jQuery的nullTypeError“compareDocumentPosition”

的 这发生任何时候,我尝试加载一个页面,其中包括jQuery的使用Zombiejs。这发生在我的Debian & Windows上,有各种不同的页面,使用不同版本的jQuery和页面上没有其他东西。

这似乎与jsDom在页面文档准备好之前评估jQuery的方式有关,但它远远超出了我的头脑。

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

UPDATE:这是我的测试(实际上通过,但调试运行表明我提到的错误):

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() 

这是错误:

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 

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

这是网页的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> 
+0

请向我们展示您用来加载/初始化jquery/zombie的代码。 – mindandmedia 2012-02-24 21:54:33

回答

5

这是在黑暗中拍摄,但我克隆https://github.com/assaf/zombie.git和grepped为compareDocumentPosition。在文件中找到的第一线(S)是这样的:

if (document.documentElement.compareDocumentPosition) { 

现在,document.documentElement中通常指向<html> - 标签,你也许缺少?

+1

哇。从很少的信息很好的诊断。这似乎是问题所在,谢谢! – Joel 2012-02-24 23:33:17

+0

不客气,我现在有点骄傲。我如何获得赏金? – mindandmedia 2012-02-24 23:35:04

+0

21小时内,我将能够授予奖励。 – Joel 2012-02-25 00:31:05