0

我正在为 Android 操作系统开发一个 HTML+JavaScript 应用程序。在 HTML 页面中,我正在加载另一个具有以下代码的 JS 文件:

var Map = {};
$.getScript("cordova-2.6.0.js",function(){
Map['x'] = somthin
}

在 HTML 页面上,我正在循环浏览地图。问题是,在我的应用程序第一次加载时,一切正常。但是当我打开其他应用程序或只是返回然后我恢复我的应用程序时,地图的长度等于零。(我认为这与HTML页面加载其依赖项的顺序有关,但我不知道如何解决这个问题......)有
什么建议吗?谢谢!

在我的 JSFile.js 中编辑
我的 JS 代码:

var Map = {};
   $.getScript("cordova-2.6.0.js",function(){
        Map['X'] = 'hi';
  });

我在 HTML 页面中的 JS 代码:

<head>
<script src="JSFile.js"></script>
</head>
<body>



$(document).ready(function(){

        for(var i in Map)
        {
            alert(Map[i]);
        }
});
</body>

实际结果是,在第一次加载应用程序时,一切都运行良好 - 我收到“嗨”警报。但是当应用程序恢复时 - 我什么也没得到。

4

2 回答 2

1

将 JSFile.js 中的代码放到 $(document).ready 函数中,如下所示:

var Map = {};
$(document).ready(function(){
   $.getScript("cordova-2.6.0.js",function(){
        Map['X'] = 'hi';
        for(var i in Map)
        {
            alert(Map[i]);
        }
  });
});

记住 $.getScript 是异步的,所以如果你这样调用它,它将不起作用:

$(document).ready(function(){
    var Map = {};
       $.getScript("cordova-2.6.0.js",function(){
            Map['X'] = 'hi';
      });
    //Will not work because the response may not arrive yet
    for(var i in Map)
            {
                alert(Map[i]);
            }
    });
于 2013-06-10T12:41:17.060 回答
0

在页面的 onload 事件中添加该代码。以便在该页面经历加载事件时调用此代码

于 2013-06-10T11:45:50.587 回答