Variables JavaScript globales dans Webkit

J'ai Chrome 7.0 et j'essaie d'accéder aux champs d'un objet global. Le code fonctionne parfaitement dans Firefox et IE, mais le débogueur de Chrome ne m'aide pas à aller n'importe où. J'ai essayé Safari et ça a également des problèmes.

Je peux obtenir la valeur de la minuterie, mais lorsque j'accède à l'état via la console, j'obtiens "[object Object]" . status.completedJobs retourne undefined même après l' status = $.parseJSON(msg.d); (Json string est valide).

Je ne suis pas sûr de ce qu'il faut faire après cela. Appel de $.parseJSON(msg.d); À partir de la console fonctionne et je peux afficher les champs de l'objet avec le débogueur. Comment puis-je obtenir le statut Objet correctement assigné et globalement accessible?

Voici mon code:

 //Object that holds result of AJAX request var status = new Object(); //Refresh timer variables var timer; var timer_is_on = 0; $(document).ready(function() { update(); doTimer(); }); /** * Performs the AJAX request and updates the page */ function update() { $.ajax({ type: "POST", url: "Default.aspx/getStatus", data: "{}", contentType: "application/json; charset=utf-8", dataType: "json", success: function(msg) { if (msg) { try { status = $.parseJSON(msg.d); } catch (e) { console.log(e); } updateProgressBar(); } } }); } function updateProgressBar() { var percent = Math.round(status.completedJobs / status.numJobs * 100); $('#progressPercentage').text(percent + '%'); $('#progressbar').progressbar({ value: percent }); } /** * Used to initialize the timer. */ function doTimer() { if (!timer_is_on) { timer_is_on = 1; timedCount(); } } /** * Executed on every time interval. */ function timedCount() { update(); timer = setTimeout("timedCount()", 3000); } 

Essayez d'utiliser un autre nom que le statut , il y a un membre prédéfini de la fenêtre (la fenêtre est l'objet global dans JS basée sur le navigateur) appelé "statut". Il serait également bon que vous assigniez la variable globale à l'objet fenêtre pour éviter les conflits s'il existe une variable dans la portée actuelle (non globale) avec le même nom:

 window['statusVar'] = $.parseJSON(msg.d);