这给我带来了很多麻烦,到目前为止,我发现的每一个stackoverflow问题/答案以及其他所有谷歌搜索都没有帮助我。
我有两个HTML文件。一个叫做cs,另一个叫做csi。它们都链接到一个常见的js文件,我试图实现将在两个文件中持久保存的变量。
变量在用户输入的cs html中定义,然后在csi中显示。
这里是Javascript的样子。我有它在主体加载的cs html上只运行CS,而在主体加载的csi html上只运行。
颜色仍然存在,变量MyApp.str在cs中建立,但当它加载到csi时,MyApp.str变为"未定义"
我想我会避免这种情况,因为我建立了MyApp.str = strChar,它本身就是一些用户输入,仅在cs中可用。
var MyApp = {}; // Globally scoped object
function onlyCS(){
MyApp.color = 'green';
setInterval(strdefine, 3000)
}
function onlyCSI(){
MyApp.color = 'red';
setInterval(bar, 3000)
}
function strdefine(){
alert(MyApp.color); // Alerts 'green'
strChar = parseInt($('#Xdemo').text(), 10);
$('#result').text(strChar);
MyApp.str = strChar;
alert('the myapp global obj (str) is currently ' + MyApp.str);
}
function bar(){
alert(MyApp.color); // Should alert 'red'
alert('the myapp global obj (str) is currently ' + MyApp.str);
}
如果有人能帮助我,我真的很感激。
编辑:评论帮助我弄清楚使用localstorage和变量是我的问题的一个很好的解决方案。
在strdefine中我把
strChar = parseInt($('#Xdemo').text(), 10);
localStorage.setItem('str', strChar);
并且在栏内我放
alert('LS "str" is currently ' + localStorage.str);
var ex = localStorage.getItem('str') || 0;
$('#result').text(ex);
答案 0 :(得分:1)
您可以选择:
将变量放在JavaScript对象中不会持续超过页面刷新。您还可以使用AJAX读取一些HTML部分,然后将其应用到某个容器中的页面(不是整页,只是部分像<div>my new</div>
等。存储在某个服务器端文件中