好的,我是一个node.js的新手:当我尝试加载google.com,并在页面中执行脚本时,如下所示:
var zombie=require("zombie");
browser = new zombie.Browser({ debug: true })
browser.visit("http://www.google.com",function(err,_browser,status){
if(err){
throw(err.message);
}
})但是get错误:
28 Feb 16:06:40 - The onerror handler
on target
{ frames: [ [Circular] ],
contentWindow: [Circular],
window: [Circular],
…………………………我能做什么?
发布于 2011-03-01 00:27:30
实际的错误消息隐藏在错误输出的一部分。在browser.visit函数中,添加...
console.log(err.message);...above throw(err.message);.这应该会让您更好地了解哪里出了问题:)
编辑:已经在www.google.com上测试了节点0.4.1 / zombie 0.9.1,看起来是javascript错误(非法令牌)导致了问题。你可以通过设置僵尸代码来避免javascript错误,如下所示:
browser = new zombie.Browser();
browser.runScripts = false; // this disables executing javascript
browser.visit("http://www.google.com/", function (err, browser) {
if (err) { console.log('Error:' + err.message); }
else { console.log('Page loaded successfully'); }
// ... rest of your code here
});就我个人而言,我认为当前的僵尸错误输出不是很有帮助,所以我更喜欢关闭它,并在出现错误时显示一条简单的console.log消息。
最后,您还可以通过将debug: true传递给浏览器函数来调试错误:
browser = new zombie.Browser({ debug: true });这将输出所有调用(包括ajax),并可能有助于查明错误的来源。
祝好运!
https://stackoverflow.com/questions/5139580
复制相似问题