2016-09-10 7 views
-1

私は特定のシナリオを持っています。私は負荷の各ページで実行される即座の機能を持っています。javascriptでコードを1回実行する

(function() { 
     if (readcookie(login)) { //i need to make it execute only once 
      document.head.appendChild(iframe); 
     } else { 
     //nothing 
     } 
    }()); 

この文をif文で実行することは可能ですか?ログインCookieを変更することはできません。また、私はグローバル変数または新しいクッキーを使用したくない。

+0

あなたの質問に少しフレーズを付けてください。現在、あなたがしようとしていること、そしてあなたの問題は –

+0

という言葉を再解釈したことを理解することはかなり難しいです。 – ajayv

+0

あなたが何を求めているかはまだ不明です。少なくとも新しいページを読み込んでプログラム全体を再実行するまで、一度だけ実行されます。 – Quentin

答えて

1

あなたはあなたのコードは、前のページのロード中に実行された場合を覚えておくことがsessionStorageを使用することができます。

(function() { 
    // Check that your custom storage variable is not set. 
    if (!sessionStorage.frameAppended) { 
     // If this is the first time the code is executed, 
     // create a boolean variable in the storage. 
     sessionStorage.frameAppended = true; 

     // Add the code that needs to be executed only once below this point. 
     if (readcookie(login)) { 
      document.head.appendChild(iframe); 
     } 
    } 
}()); 

カスタムデータは、(ブラウザセッションごとではなく)永久に保存したい場合は、あなたが使用することができます代わりにlocalStorage

+1

ブラウザデータを消去すると 'localStorage'でもクリアされ、コードは再び実行されることに注意してください。 – Xotic750

+0

@ Xotic750それは本当ですが、それを回避する手段はありません。他の方法ではありません。 –

+0

はい、そうです。セッションクッキーが動作します。ブラウザのセッションが切れたときに削除します。私はこのようにした: - if(readcookie(login)&&!readCookie(frameAppended)){ document.head.appendChild(iframe);セッションクッキー 'フレームが追加されました'を作成します。 } ' – ajayv

関連する問題