2012-02-21 3 views
1

зомби: Не удается прочитать свойство «compareDocumentPosition» нулевых TypeError: Не удается прочитать свойство «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

ответ

5

это выстрел в темноте, но я клонировал https://github.com/assaf/zombie.git и grepped для compareDocumentPosition. Первая линия (ы) в файлах, как это:

if (document.documentElement.compareDocumentPosition) { 

Теперь document.documentElement обычно указывает на <html> в тег, вы, возможно, не хватает, что?

+1

Ничего себе. Хороший диагноз от очень маленькой информации. Это, похоже, проблема, спасибо! – Joel

+0

добро пожаловать, теперь я немного горжусь. как я могу получить щедрость? – mindandmedia

+0

Через 21 час я смогу его наградить. – Joel