2014-03-30 107 views
2

我試圖創建與所有的Javascript的評估整個頁面,但調用我的回調每次當一個特定函數被調用一次PhantomJS腳本(說,所有訪問功能myGoodFunc())並數它們。PhantomJS回調/掛鉤的Javascript功能

任何人知道的方式來做到這一點?

謝謝

+1

的可能重複的[行的代碼添加到所有的功能](http://stackoverflow.com/questions/15618309/add-a-line-of-code-to-all-functions) – Bergi

回答

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() { \n callback(); 

好玩:所以如果有一個函數字面var functionName = function() {,只是repace它以類似的方式!