2012-02-21 4 views
1

좀비 : 널 (null) 형식 오류의 특성 'compareDocumentPosition'을 읽을 수 없습니다 : 이것은 내가 jQuery를이 Zombiejs를 사용하여 포함하는 페이지를로드하려고 언제든지 발생 특성 'compareDocumentPosition' 널Zombiejs jQuery를 nullTypeError 'compareDocumentPosition'

의 읽을 수 없습니다. 데비안 & 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/좀비를로드/초기화하는 데 사용하는 코드를 표시하십시오. – mindandmedia

답변

5

이 어둠 속에서 촬영입니다,하지만 난 https://github.com/assaf/zombie.git를 복제하고 compareDocumentPosition에 대한 grepped. 파일에있는 첫 번째 줄 (들)과 같다 :

if (document.documentElement.compareDocumentPosition) { 

이제 document.documentElement는 일반적으로 <html> -tag를 가리키는, 당신은 어쩌면 누락?

+1

와우. 아주 작은 정보에서 좋은 진단. 그게 문제인 것처럼 보입니다. 고마워요! – Joel

+0

당신은 환영합니다. 나는 조금 자랑 스럽습니다. 내가 어떻게 현상금을 얻을 수 있니? – mindandmedia

+0

21 시간 후에 나는 그것을 수여 할 수있을 것이다. – Joel