1

ゾンビ:nullのプロパティ'compareDocumentPosition'を読み取れません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()

そしてこれはエラーです:

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>
4

1 に答える 1

5

これは暗闇でのショットですが、https: //github.com/assaf/zombie.git のクローンを作成し、compareDocumentPosition を grep しました。ファイルで見つかった最初の行は次のようになります。

if ( document.documentElement.compareDocumentPosition ) {

現在、document.documentElement は通常<html>-tag を指していますが、それを見逃していませんか?

于 2012-02-24T21:59:40.783 に答える