iframe複数ページ間の転送変数


問題の説明:最近プロジェクトをする時、1つのiframeの複数のページの間で変数を伝達する問題に出会います.iframeフレームページでは、異なるページをクリックして、異なるオプションを設定し、最後にクリックして保存し、一緒にデータベースに保存することができます.
    アイデアを解決するには、マスターページでjsグローバル変数を定義し、サブiframeページでグローバル変数の割り当てを行う必要があります.
    まず、ホームページでグローバル変数v_を定義します.global=''は、サブiframeページでグローバル変数に値を割り当てます.例えば、jsonオブジェクトフォーマットのデータを保存します.これはExt.encode()関数を使って、jsonオブジェクトを文字列に変換し、jsグローバル変数に値を与えます.他のページと同様です.
    主iframeページで直接jsonオブジェクトフォーマットと定義されている場合、サブiframeページ間を転送すると、実行できないスクリプトが発生する可能性があります.私は出会いました.最初は分かりませんでした.解決するのが面倒くさいです.最後に原因を見つけました.私のjsonオブジェクトには配列が入っていますが、ページ間を伝達する時には配列ポインタが出てきます.したがって、ページ間で変数を転送するときは、文字列を転送します.
     主要コード:
     v_.global='';//主iframe
     var temp=''array':[]//.サブページ定義
     window.parent.v_global=Ext.encode(temp)//値を賦与する
     Ext.decode(window.parent.vuglobal).array[i]//ホームのグローバル変数の配列の値を取得します.
 
    いくつかの比較的有用な関数を紹介します.
    Ext.encode()  エンコード:オブジェクトを文字列に変換
    Ext.decode()  復号:文字列をオブジェクトに変換
 
/********************
  :  array      a
  :return true;
  :array.in_array('a');
********************/

//          
Array.prototype.S=String.fromCharCode(2); 
Array.prototype.in_array=function(e) 
{ 
      var r=new RegExp(this.S+e+this.S); 
      return (r.test(this.S+this.join(this.S)+this.S)); 
}