无法获取全局变量

Can't get global variable

这是window: 所以现在,当我向下滚动时(children 以与上面显示的相同的方式出现,一直显示),我看到了我想要的: 但我无法访问它。为什么?

这是代码,位于 js 文件夹中的函数中:

function update_match(slot, match, s) {
    $("#match" + slot + " i").text(match);
    console.log(window);
    console.log(window.saves1);          // undefined
    console.log(window.external.saves1); // undefined
    (slot == 1) ? window.saves1.item = s : window.saves2.item = s;
}

变量是这样创建的:

function set_global(name, pos, ab, needSave, s) {
    window.saves1 = {item: s};
    window.saves2 = {item: s};
}

在 js/main.js 文件中。

文件结构是这样的:

index.php (where the php code runs and calls update_match())
js - main.js
   - read_match.js

你运行宁update_match太早了。

似乎您在 运行 设置 update_match 时,全局变量尚未定义。它们是稍后创建的。但是因为 console.log,当时没有回显 window 对象的快照,它显示了全局变量,因为在你的脚本结束时它们被创建并且 console.log 显示了"finished" window 对象。

要解决您的问题,运行 稍后 update_match,在文档准备好之后或使用 setTimeout 函数以合理的延迟:

setTimeout(function(){ update_match(); }, 500);

到运行文档准备好后的功能,看看这个post:

jQuery Mobile: document ready vs page events

您可以通过以下方式完成:

$(document).ready(function() { 

update_match();

});