2010-07-21 39 views
3

我目前使用FireBug來了解hypem如何提供允許其Flash播放器工作的內容(特別是播放按鈕功能)。我發現trackList變量中填充了數據,但我不知道它在哪裏設置。使用FireBug在Javascript中設置變量的時間/地點的跟蹤

我該如何跟蹤何時/何地修改此集合?我可以添加一個手錶,但不知道如何在設置時進行陷阱。

僅供參考我這樣做是因爲我想要這些功能的一部分,並且想要了解他們是如何做到這一點的。

回答

1

不幸的是,這不是直接可能的。相反,您可以通過Javascript進行搜索並查看變量的設置位置,然後在每行找到正常斷點。

+0

我試過這個,但不幸似乎無法找到它在哪裏設置! – Chris 2010-07-21 14:47:05

+0

嘗試調用'defineProperty'並在屬性中放置斷點或'console.log'調用。 – SLaks 2010-07-21 15:08:49

+1

對不起,但我該如何使用'defineProperty'? – Chris 2010-07-22 08:05:46

2

這裏是你如何使用defineProperty來做到這一點。在我的示例中,我將每次分配window.$以及調用堆棧。當然,不要記錄日誌,您可以觸發debugger;或執行其他操作。

Object.defineProperty(window, "$", 
{ 
    set: function(val) { 
    console.log("$ was set to '",val,"' at ",Error().stack); 
    this.$internal=val; 
    }, 
    get: function() { return this.$internal; } 
});