iframe複数ページ間の転送変数
1401 ワード
問題の説明:最近プロジェクトをする時、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() 復号:文字列をオブジェクトに変換
アイデアを解決するには、マスターページで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));
}