我刚刚开始学习Phonegap + jQuery手机和HTML5,所以不要因为我的愚蠢而失去你的神经!
有人能告诉我为什么这个不起作用吗?当我使用一个来自localStorage的变量时,我只是在按下按钮时得到一个空屏幕,但是当我使用一个变量temperature="100“时,它工作得很好。Android 4.1。
<script type="text/javascript" charset="utf-8">
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
window.localStorage.setItem("temperature", "100");
var temperature = window.localStorage.getItem("temperature");
}
</script>
<div data-role="content">
<p>Working or not?</p>
<button onclick="myFunction()">Try it</button>
<p id="testi"></p>
<script type="text/javascript">
function myFunction() {
//var temperature = "100";----> This is working!
document.getElementById("testi").innerHTML = temperature;
}
</script>
</div>
另一个问题:如何在Windows Phone中处理页面之间的变量?它们不支持localStorage,所以如果你没有db-connection,有没有其他方法来处理这个问题?
谢谢!
萨米语
发布于 2012-07-15 10:13:59
对于onDeviceReady
函数的作用域,temperature
是局部的。也就是说,一旦函数结束,它就消失了。
您有两个选择:
// Make it global
var temperature;
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
window.localStorage.setItem("temperature", "100");
temperature = window.localStorage.getItem("temperature");
}
或者:
// Retrieve it in myFunction
function myFunction() {
var temperature = localStorage.getItem("temperature");
document.getElementById("testi").innerHTML = temperature;
}
有关函数作用域的示例的详细列表,请尝试this answer。
https://stackoverflow.com/questions/11490869
复制相似问题