0

次のような2つのファイルがあります

DataProcesser.js

var FROM;
 var TO;
var CONTECT;

function getValues(fromAdd,toAdd,ContectText){
 alert("method called");
  FROM=fromAdd;
  TO=toAdd;
  CONTECT=ContectText;
 alert("values are " + FROM +" "+ TO +" "+ CONTECT);
 window.open('email.html','newwindow');
}

EMail.html

ボディオンロード中

function loadData(){
    document.getElementById('lblFrom').innerHTML =window.FROM;
    document.getElementById('lbTo').innerHTML = window.TO;
    document.getElementById('lblfrom1').innerHTML = window.FROM;
    document.getElementById('lblto1').innerHTML = window.TO;
    document.getElementById('txtAreaBody').value =window.CONTECT;

}

From、to、contect を EMail.html に渡すにはどうすればよいですか? Body Onload に loadData 関数を書きました。結果として未定義の値を取得しています。別の HTML から getvalues 関数を呼び出しています。

4

2 に答える 2

0

したがって、変数 FROM、TO、CONTECT は、getValues() 内でいつか設定されます。次に、loadData() を呼び出して、読み込まれた HTML が取得した値を使用するようにします。したがって、getValues() と loadData() が同じ JS コンテキストにあり、変数に直接アクセスできると想定しています。

このコードを変更します。

     document.getElementById('lblFrom').innerHTML =window.FROM;

      document.getElementById('lblFrom').innerHTML = FROM;

他の変数についても同様に行います。

PS: コードを投稿する場合は、フローも指定してください。ランダムなコード スニペットを投稿しても、問題を理解するのに役立ちません。

于 2013-01-03T11:40:49.127 に答える
0

すべての HTML ドキュメントには、独自の Javascript コンテキストがあります。したがって、ある HTML ページから別の HTML ページにある変数にアクセスすることはできません。

しかし、できることは、これらの変数を URL の一部として転送することです。? 演算子を使用して、渡されたデータから URL を分離できます。例:

email.html?from=somewhere&to=somewhereElse&connect=somevalue

Web サーバーは、ファイル名の一部として まですべてを解釈するだけ?で、残りはそれに渡される GET パラメータです。したがって、Web サーバーはファイル email.html を返します。そのページで、完全な URL にアクセスし、変数を使用して引数を解析できますdocument.location

別のオプションはCookie を使用することです。ただし、一部のユーザーは Cookie を無効にしている (javascript を無効にしているユーザーよりも多い) ため、Web サイトの主要な機能を Cookie に依存するべきではないことに注意してください。

ただし、最善の方法は、すべてのデータをサーバーに保存し、使用可能な場合は Cookie を使用するセッション処理メカニズムを使用し、フォールバックとして GET パラメータを使用して、個々のユーザーにセッション ID を割り当てることです。これの最も重要な利点は、ユーザーがデータを簡単に改ざんできないことです。ただし、これはサーバー側のスクリプトが必要なため、クライアント側の JavaScript だけでは実行できません。

于 2013-01-03T11:09:10.700 に答える