6
我使用zombie.js來測試我的客戶端JavaScript,但我遇到了一個問題。 Zombie.js不提供同步<script>
標籤執行,並且實際上似乎根本不執行外部JS文件。一個基本的測試證實了這一點:
<script type="text/javascript" src="test1.js"></script>
<script type="text/javascript" src="test2.js"></script>
<script type="text/javascript" src="test3.js"></script>
<script type="text/javascript">
console.log("Inline javascript.");
</script>
每個測試#.js文件包含了一行:console.log("TEST#.JS");
當我使這個在普通瀏覽器,控制檯顯示的預期:
TEST1.JS
TEST2.JS
TEST3.JS
Inline javascript.
但是當我運行它與zombie.js,我只看到一條線Inline javascript.
這是我試圖解決這個問題:
- 使用
document.createElement
到腳本標籤動態附加到使用document.write
文檔 - 到腳本塊使用
setTimeout
結合圖1和2添加到HTML - 上
console.log("Inline javascript")
,得到測試腳本一些時間加載。
除了將所有外部JS文件中的JS代碼放到一個巨大的<script>
塊中之外,有什麼辦法可以解決這個問題?
你有沒有考慮PhantomJS作爲殭屍的替代? – Spudley 2012-07-29 21:36:51
是的,我開始使用PhantomJS,但是有一些錯誤(例如navigator.onLine總是錯誤的等)讓我離開它。 – laker 2012-07-30 14:36:19