我有两个html文件: log_in.html 和 edit_story_name.html 以及两个javascript文件 log_in.js 和 edit_story_name。 JS
我在log_in.js中初始化了一个对象变量。
log_in.js
var User_Name= {value: "default_value"};
var Login_Password;
$(document).ready( function(){
$(' #public_User ').click( function(){
$(' #log_in_account_txt ').val('publicUser');
$(' #log_in_psw ').val('publicUser');
User_Name.value= "publicUser";
alert("User_Name.value is"+ User_Name.value);
window.open('edit_story_name.html','newwindow');
});
});
当用户按下“public_User”按钮时,它会将对象变量的值指定为“pulicUser”。
然后将打开“edit_story_name.html”窗口。
edit_story_name.html:
<!DOCTYPE>
<html>
<head>
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript" charset="utf-8" src="jquery-1.7.2.js"></s ript>
<script type="text/javascript" src="log_in.js"></script>
<script type="text/javascript" src="edit_story_name.js"></script>
<link type="text/css" href="edit_story_name.css" rel="Stylesheet"/>
</head>
<body>
<input id="input_story_name" type="text" value="">
</body>
</html>
edit_story_name.js:
window.addEventListener( "load",function(){
alert("User_Name.value is"+ User_Name.value);
if(User_Name.value == "publicUser"){
Story_Name="_story";
}else {
Story_Name= User_Name.value +"_story";
}
$(' #input_story_name').val(Story_Name);
});
基本上,在我按下log_in.js中的“public_User”按钮后,User_Name的值应该变为“publicUser”。 但无论我怎么努力,价值仍然是:“default_value”。
请帮忙。
答案 0 :(得分:4)
Javascript变量仅持续一个网页的生命周期。此外,每个浏览器窗口都有自己独立的状态。当您在同一窗口中转到另一个网页时,您的javascript脚本将从头再次重新初始化,并且不包含上一页中的任何值。
从一个页面保存某些状态的常用方法是:
答案 1 :(得分:0)
在新窗口中打开edit_story_name.html,在新窗口中重新加载DOM时,旧窗口中的所有变量都将丢失。