2012-05-09 37 views
0

我被困在修改別人的源代碼,不幸的是它非常強大的沒有記錄。如何在按下按鈕時發現哪個函數被調用?

我試圖弄清楚當我按下一個按鈕作爲努力跟蹤當前錯誤的來源時,調用哪個函數,我沒有運氣。從我所知道的函數它會在生成後動態添加到按鈕中,因此,我沒有檢查onlick =「」,並且我的調試面板中找不到任何其他幫助信息。 「M更願意在不同的瀏覽器啓動了,如果我不得不這樣做。

+0

我不認爲這是可能的,但我會考慮它 –

回答

1

在Chrome中,鍵入後您的地址欄下面頁面已完全加載(不要忘記更改按鈕類別):

var b = document.getElementsByClassName("ButtonClass"); alert(b[0].onclick); 

或者您可以嘗試(進行相應的更改f或正確的按鈕ID):

var b = document.getElementById("ButtonID"); alert(b.onclick); 

這應該警告消息框中的函數名稱/代碼段。

擁有函數名稱或代碼片段後,您只需通過.js文件爲片段/函數名稱執行搜索。

希望它有幫助!

1
    與瀏覽器的JavaScript調試器中打開
  1. 打開頁面
  2. 單擊「Break all」或同等效果
  3. 單擊您希望調查的按鈕(如果鼠標懸停頁面元素導致事件被觸發,可能需要一些技巧。如果頁面中發生超時或間隔,它們可能也會妨礙您的工作。)
0

您可以爲每個函數添加一個跟蹤變量。使用console.log()查看跟蹤結果。

像這樣:

function blah(trace) { 
    console.log('blah called from: '+trace); 
} 

(查看結果,你必須打開開發者控制檯)

1

檢查按鈕標記,看看它的類/ ID。使用class和id和搜索的JavaScript,它很可能是以前開發商做了一些類似

document.getElementById('someId').onclick = someFunction...; 

document.getElementById('someId').addEventListener("click", doSomething, false);

+0

是的,我最終設法追溯到後者。看起來他們使用某種預先創建的工廠代碼將功能附加到相關按鈕上。 – RonLugge

相關問題