我有两个 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”。
请帮忙。
最佳答案
Javascript 变量仅在单个网页的生命周期内有效。此外,每个浏览器窗口都有其自己单独的状态。当您转到同一窗口中的另一个网页时,您的 JavaScript 脚本将从头开始重新初始化,并且不包含上一页中的任何值。
保存一个页面的某些状态并可在其他页面中使用的常用方法有:
- 将值存储在 Cookie 中
- 将值存储在本地存储中(仅限现代浏览器)
- 将值存储在网页可以检索的服务器上
关于javascript - 变量的范围不会扩展到另一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13006067/