尝试 Zombie 几个小时并感到非常兴奋。唯一的(初学者的运气?)问题是脚本似乎是异步加载的(这很酷)并按照它们下载的顺序执行(而不是按照它们在“原始”HTML文件中提到的顺序)。我会解释:
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.js"></script>
<script>alert($('body'))</script>
</head>
http://jsfiddle.net/viebel/GWYEj/ - 以下脚本加载 jQuery 并尝试使用它。下载 jQuery 需要一些时间,但 Zombie 似乎在下载完成之前继续执行下一个脚本部分。显然,没有 jQuery 的 $('body') 没有多大意义,因此我们得到以下错误:
Zombie: GET http://jsfiddle.net/viebel/GWYEj/show/
Zombie: GET http://jsfiddle.net/viebel/GWYEj/show/ => 200
Zombie: GET http://jsfiddle.net/js/lib/mootools-core-1.4.4.js
Zombie: GET http://code.jquery.com/jquery-1.7.1.js
Zombie: GET http://jsfiddle.net/js/lib/mootools-core-1.4.4.js => 200
Zombie: Unexpected token } SyntaxError: Unexpected token }
at Object._evaluate (/home/viebel/node_modules/zombie/lib/zombie/browser.coffee:136:28)
in http://jsfiddle.net/viebel/GWYEj/show/:undefined:undefined<script>
Zombie: GET http://code.jquery.com/jquery-1.7.1.js => 200
在“常规”浏览器中,代码运行流畅。是的,我们知道 node.js 并不是真正的客户端 javascript,但 Zombie.js 应该是,不是吗?
请协助我们做错了什么。