У меня есть Chrome 7.0 и я пытаюсь получить доступ к полям глобального объекта. Код отлично работает в Firefox и IE, но отладчик Chrome не помогает мне никуда. Я попробовал Safari, и у меня тоже проблемы.Глобальные переменные Javascript в Webkit
Я могу получить значение таймера, но когда я получаю доступ к статусу через консоль, я получаю "[object Object]"
. status.completedJobs
возвращение undefined
даже после status = $.parseJSON(msg.d);
(json строка действительный).
Я не уверен, что делать после этого. Вызов $.parseJSON(msg.d);
из консольных работ, и я могу просматривать поля объекта с помощью отладчика. Как получить статус Объект должным образом назначен и доступен на глобальном уровне?
Вот мой код:
//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);
}
вы пробовали `console.dir() `? – aditya 2010-11-29 16:15:42
Вы очень уверены в `msg.d`? И какие данные вы возвращаете? – Harmen 2010-11-29 16:19:20