Re: [請益] 如何監控INPUT 元素被javascript改值

看板Web_Design作者 (smile_ting)時間11年前 (2012/08/08 23:04), 編輯推噓3(304)
留言7則, 4人參與, 最新討論串3/3 (看更多)
不好意思,推文要推有點多所以占一點版面討論 因為在HTML裡面的id元素也是動態產生的 可能input 欄位的id 叫做 c[0-9]_stream[0-9]_[mpg4,h264] 括號[ ] 裡面代表是集合 所以可能是 c0_stream0_mpg4 -> c9_stream9_h264 幾百種排列組合。 後端在assgin value的javascript 經過很多人maintain , 每個人用法都不太懂。 有可能先透過 object , 去做 each 再去取到 input 欄位的 id . 也有可能透過hard code 暴力法,去assgin 給這些id value. 我無法透過一個 確定的元素名稱 比如說 c0_stream0_mpg4 去搜尋這個關鍵字 看看js裡面有誰更改到他。 而且js檔,經過很多人的改版,是在是很大,function也是亂call一通。追起來有點花時間 才想說有沒有類似中斷點的東西 我知道 firebug裡面可以設定某一行中斷點,程式執行到指定的那一行,就會停住。 並且可以找到是誰call他的,追溯回去。 感謝tony大~有些方法我沒試過 我會try看看。 但是看起來感覺上,還是要先在js裡面找出哪些code是可能改到他 或者是有一個確定的變數名稱? ※ 引述《tonytonyjan (南洋大兜蟲)》之銘言: : 1. input tag 如果有 id 或 class 就用這些字去搜尋附近的程式碼,直接閱讀。 : 2. 如果你是用 IE,試試 onpropertychange,他可以偵測到用程式改變 value 的事件。 : (oninput 和 onchange 辦不到) : 範例:請用 IE 打開 http://jsfiddle.net/cye78/ 並且按 F12 開啟主控台 : 3. 善用瀏覽器的開發人員工具,以 chrome 為例,他的開發人員工具可設中斷點, : 也能用監看式,看區域變數值等等,盡量不要傻呼呼用 alert()。 : ※ 引述《tao2tw (smile_ting)》之銘言: : : 請問一下各位,目前在maintain一份很臭又長的code : : 前端html網頁 有很多input欄位 : : 後面js網頁 程式碼 很長又亂, : : 有一些input 欄位的value 想要知道他被哪個javascript function更改 : : 有比較好的偵測方法嗎? : : 類似 設定中斷點這樣的方法呢? : : 謝謝..... : : 我只想到暴力法,每一個function enter的時候 都alert該input欄位value出來看。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 119.77.136.156

08/08 23:27, , 1F
jquery用.live()去綁onchange事件
08/08 23:27, 1F

08/08 23:42, , 2F
1. live() 1.7 之後已經過時,改用 on()
08/08 23:42, 2F

08/08 23:43, , 3F
2. 就說 onchange 偵測不到用程式改變屬性的事件了
08/08 23:43, 3F

08/09 00:17, , 4F
onchange 我印象是要user 透過網頁去 trigger才會觸發。
08/09 00:17, 4F

08/09 01:03, , 5F
http://tinyurl.com/9rpu25f 也許有幫助 fyi
08/09 01:03, 5F

08/09 08:20, , 6F
喔,他要即時偵測喔,那只能靠瀏覽器的套件解決了
08/09 08:20, 6F

08/10 22:53, , 7F
後來還是找不到有效方法,還是慢慢設中斷點 縮小範圍
08/10 22:53, 7F
文章代碼(AID): #1G8e02tm (Web_Design)
文章代碼(AID): #1G8e02tm (Web_Design)