【发布时间】:2014-05-21 04:54:48
【问题描述】:
我正在尝试创建一个 PhantomJS 脚本,该脚本使用其所有 Javascript 评估整个页面,但每次调用特定函数时都会调用我的回调(例如,对函数 myGoodFunc() 的所有访问)并计算它们。
有人知道这样做的方法吗?
谢谢
【问题讨论】:
标签: javascript phantomjs
我正在尝试创建一个 PhantomJS 脚本,该脚本使用其所有 Javascript 评估整个页面,但每次调用特定函数时都会调用我的回调(例如,对函数 myGoodFunc() 的所有访问)并计算它们。
有人知道这样做的方法吗?
谢谢
【问题讨论】:
标签: javascript phantomjs
我能想到一个很肮脏的方法:
在您的 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();
玩得开心!
【讨论】: