phantomjs中的自定义函数给出了ReferenceError

时间:2013-11-11 23:58:16

标签: javascript phantomjs

我正在尝试学习phantomjs,以便自动从现在受javascript保护的网站获取数据。

我需要点击一个链接;根据{{​​3}},我尝试将自定义函数“eventFire”添加到我的phantomjs文件this question。但无论我尝试过什么,它都会输出ReferenceError: Can't find variable: eventFire

有人可以告诉我正确的方法吗?因为我没有看到它,谢谢你。

我尝试完全复制这个功能但是没有用,所以我尝试了同样的结果:

eventFire = function(el, etype){
  if (el.fireEvent) {
    (el.fireEvent('on' + etype));
  } else {
    var evObj = document.createEvent('Events');
    evObj.initEvent(etype, true, false);
    el.dispatchEvent(evObj);
  }
}

1 个答案:

答案 0 :(得分:1)

如果您使用page.evaluate,则可以将该函数作为参数传递。

page.evaluate(function(eventFire_fn) {
    // click your 'element'
    eventFire_fn(element, 'click');
}, eventFire);