gpt4 book ai didi

javascript - Webkit 中的全局 Javascript 变量

转载 作者:行者123 更新时间:2023-11-29 17:30:49 25 4
gpt4 key购买 nike

我有 Chrome 7.0 并且正在尝试访问全局对象的字段。该代码在 Firefox 和 IE 中运行良好,但 Chrome 的调试器无法帮助我取得任何进展。我试过 Safari,它也有问题。

我可以获得计时器的值,但是当我通过控制台访问状态时,我得到的是 "[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);
}

最佳答案

尝试使用不同于status的名称,window有一个预定义的成员(window是基于浏览器的JS中的全局对象)叫做“status”。如果在当前(非全局)作用域中存在同名变量,则将全局变量分配给窗口对象以避免冲突也会很好:

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

关于javascript - Webkit 中的全局 Javascript 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4305625/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com