首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >zombie.js不能执行javascript吗?

zombie.js不能执行javascript吗?
EN

Stack Overflow用户
提问于 2011-02-28 16:16:19
回答 1查看 4K关注 0票数 5

好的,我是一个node.js的新手:当我尝试加载google.com,并在页面中执行脚本时,如下所示:

代码语言:javascript
复制
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错误:

代码语言:javascript
复制
28 Feb 16:06:40 - The onerror handler

 on target 

{ frames: [ [Circular] ],
  contentWindow: [Circular],
  window: [Circular],
…………………………

我能做什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-01 00:27:30

实际的错误消息隐藏在错误输出的一部分。在browser.visit函数中,添加...

代码语言:javascript
复制
console.log(err.message);

...above throw(err.message);.这应该会让您更好地了解哪里出了问题:)

编辑:已经在www.google.com上测试了节点0.4.1 / zombie 0.9.1,看起来是javascript错误(非法令牌)导致了问题。你可以通过设置僵尸代码来避免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传递给浏览器函数来调试错误:

代码语言:javascript
复制
browser = new zombie.Browser({ debug: true });

这将输出所有调用(包括ajax),并可能有助于查明错误的来源。

祝好运!

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5139580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档