PhantomJS回调/钩子Javascript函数

时间:2014-03-30 14:00:08

标签: javascript phantomjs

我正在尝试创建一个PhantomJS脚本,该脚本使用其所有Javascripts评估整个页面,但每次调用特定函数时调用我的回调(比如,对函数myGoodFunc()函数的所有访问)并计算它们。

有人知道这样做的方法吗?

谢谢

1 个答案:

答案 0 :(得分:0)

我可以想到一种非常肮脏的方式:

在你的phantomjs脚本中,你可以做到

for (i=0;document.getElementsByTagName('script');;i++) {
    document.getElementsByTagName('script').innerText.replace(/'functionname()'/g, /'callback(), functionname()'/);
}

如果方法立即对函数的输出起作用,这将导致语法错误,例如Object.functionname().length将变为Object.functionname(), callback().length,这将产生某种错误。

但是,这可能是个不错的开始。至于计算对此函数的调用的出现次数,您可以在回调函数中创建一个全局变量,并在该函数的末尾执行count++

实际上,只是想到这一点,第二种方法是修改函数定义;所以,如果有一个函数文字var functionName = function () {,只需用类似的方式重新编写它:

var functionName = function() { \n callback();

玩得开心!