0

log_in.html と edit_story_name.html の2 つの HTML ファイルと、 log_in.jsedit_story_name.jsの 2 つの JavaScript ファイルあります

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」のままです。

助けてください。

4

2 に答える 2

4

Javascript 変数は、1 つの Web ページの存続期間のみ存続します。さらに、各ブラウザ ウィンドウには独自の個別の状態があります。同じウィンドウで別の Web ページに移動すると、JavaScript スクリプトが最初から再初期化され、前のページの値がまったく含まれなくなります。

あるページの状態を他のページで使用できるように保存する一般的な方法は次のとおりです。

  1. 値を Cookie に保存する
  2. 値をローカル ストレージに保存する (最新のブラウザーのみ)
  3. Web ページが値を取得できるサーバーに値を保存する
于 2012-10-22T06:39:06.767 に答える
0

edit_story_name.html が新しいウィンドウで開かれ、新しいウィンドウで DOM がリロードされると、古いウィンドウのすべての変数が失われます。

于 2012-10-22T06:40:04.380 に答える