[問題] 如何找出執行了哪些function?

看板Ajax作者 (重出江湖)時間5年前 (2018/09/21 00:29), 5年前編輯推噓4(405)
留言9則, 5人參與, 5年前最新討論串1/1
想請教各位 如果你接手到js非常亂 一個js檔都是幾百行起跳 那要找到某個tag觸發了哪些事件各位都是怎麼找的? 因為小弟我在找的時候大概不外乎就是用id或class去整個專案搜尋 去看看可能哪裡有call到 但這種方式對於寫法很奇杷或是重複名稱太多code 往往連從哪裡開始都無從查起或是要查的非常久 再不然就是要下一大堆debugger看那一個地方他停住了 想請問各位在trace javascript code的時候 是不是有什麼技巧可以分享 或是有什麼資料可以推薦給小弟呢? 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.233.159.254 ※ 文章網址: https://www.ptt.cc/bbs/Ajax/M.1537460969.A.1FE.html

09/21 00:59, 5年前 , 1F
dev tools 直接看綁了哪些 Event Listener
09/21 00:59, 1F

09/22 20:06, 5年前 , 2F
你可以試試在第一支JS設一個breakpoint,然後一步步跳
09/22 20:06, 2F
感謝解答 那像我用Chrome的dev tools 在event的部份如下圖 https://imgur.com/a/x92qrmG 現在假設我是要圖片zoom in zoom out是在哪裡用js寫的 我推測是focus event觸發 測試也應該沒錯 我是直接在jquery原始檔下中斷點 但它並不是用by id或by class的方式去select 如果用img、或是.focus這類的關鍵字去搜尋檔案又會找出一堆 請問還有什麼有效率的方式或功能可以方便找出定義這觸發事件的源頭呢? 謝謝 ※ 編輯: aoksc (118.233.159.254), 09/23/2018 22:54:02

09/23 23:05, 5年前 , 3F
console.trace()
09/23 23:05, 3F
所以console.trace()也是要去埋在可能的code裡面 然後看看有無出現相關訊息這樣? ※ 編輯: aoksc (118.233.159.254), 09/23/2018 23:56:08

09/24 01:53, 5年前 , 4F
完全沒有任何線索可以塞trace嗎?
09/24 01:53, 4F

09/24 01:54, 5年前 , 5F
jquery可以試試用visual event找
09/24 01:54, 5F

09/24 23:38, 5年前 , 6F
DevTool Performance 錄一下你想查的事件
09/24 23:38, 6F

09/28 10:35, 5年前 , 7F
你可以對HTML ele下中斷點看哪個事件修改節點或屬性
09/28 10:35, 7F

10/02 15:38, 5年前 , 8F
現在 Firefox 的 console 不是已經可以看經歷過的所有
10/02 15:38, 8F

10/02 15:38, 5年前 , 9F
function了? 不過若有用遞迴的話你會看得很花
10/02 15:38, 9F
文章代碼(AID): #1Reyhf7- (Ajax)