2

我有一個<input type="hidden">。我需要看到它的價值變化。我有很多JavaScript文件改變它的價值。當對象值發生變化時,在Web瀏覽器中停止調試器

我可以隨時隨地去任何值改變的地方,並添加debugger聲明,但這會花費很多時間。我已經瞭解Object.watch()但它只能執行特定的功能後的價值得到了改變,但我想看看其中它的代碼改變,不

有什麼辦法可以實現這一點,也許通過輸出行號和JavaScript文件名或停止在Web瀏覽器中的調試器?

+2

'Object.watch'是一個自定義的Firefox API。無論如何,Internet Explorer從來不支持它。 –

+0

隱藏元素通常在窗體的提交處理程序中填充值。您可以使用調試選項卡搜索「.value =」,或者使用DOM Explorer查看value =「some hidden value」屬性中是否有硬值。 –

回答

2

DOM變化斷點讓你回來了。

  1. 轉到元素面板DevTools。
  2. 在HTML窗格中找到元素。
  3. 右鍵單擊元素。
  4. 選擇Break On>屬性修改

如果您需要查看更改元素的值太大,那麼在元素的父單擊鼠標右鍵,並選擇子樹修改

1

下面的代碼將拋出一個Cannot assign to read only property..誤差(與堆棧跟蹤),你可以趕上(或視圖中的開發工具):

'use strict'; 
var o = {a: 29}; 
throwOnChange(o, 'a'); 

// as much code as you like here.. 

o.a++; // this will throw an error 

function throwOnChange(obj, prop) { 
    Object.defineProperty(obj, prop, { 
    value: obj[prop], 
    writable: false 
    }); 
} 

只是用它在你的input.value類似。

兩點需要注意,雖然:

  1. 必須'use strict'爲它工作,否則會忽略分配。
  2. 請參閱Object.defineProperty()

希望這有助於。

相關問題