2012-02-21 17 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