2010-07-21 2 views
3

J'utilise actuellement FireBug pour voir comment hypem délivre le contenu pour permettre à son lecteur flash de fonctionner (en particulier la fonctionnalité de bouton de lecture). J'ai trouvé que la variable trackList est remplie avec les données, mais je ne sais pas où il est défini.Suivi quand/où une variable est définie en Javascript en utilisant FireBug

Comment puis-je suivre quand/où cette collection est modifiée? Je peux y ajouter une montre mais je ne sais pas comment piéger quand elle est réglée.

FYI Je fais cela car je veux une partie de cette fonctionnalité et je veux comprendre comment ils ont fait cela.

Répondre

1

Malheureusement, ce n'est pas directement possible. Au lieu de cela, vous pouvez rechercher dans le Javascript et voir où la variable est définie, puis mettre un point d'arrêt normal sur chaque ligne que vous trouvez.

+0

J'ai essayé ceci mais malheureusement je n'arrive pas à trouver où c'est réglé! – Chris

+0

Essayez d'appeler 'defineProperty' et de placer un appel breakpoint ou' console.log' dans la propriété. – SLaks

+1

Désolé mais comment utiliser 'defineProperty'? – Chris

2

Voici comment utiliser defineProperty pour le faire. Dans mon exemple, je suis connecté chaque fois que window.$ est affecté, avec une pile d'appels. Bien sûr, au lieu de vous connecter, vous pouvez déclencher un debugger; ou faire autre chose.

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