2012-05-11 13 views
1

私はページを更新するために、JavaScriptの方法でwindow.location.reload complete?

window.location.reload(false) 

を呼び出します。私はこの呼び出しの後に追加のjavascript呼び出しを持っています。 window.location.reload(false)が追加のjavascript呼び出しを呼び出す前に実行を完了したときを知る方法はありますか?

+0

関数内に他のjs呼び出しを入れて、ページのリロードが発生した後に呼び出す必要があります – uday

答えて

2

あなたはシンプルですonloadに関数を与える必要があります:リロードは負荷と同じではありません。

window.onload = function() { // ... 
+0

助けてくれてありがとう! – user840930

2

コードwindow.location.reload(false)のあなたのラインは、現在のページをリロードするブラウザーの原因となる - この文の後にはスクリプトが実行されません....

をあなたが最初のロード時にクッキーを設定することができ - その後の負荷にをチェッククッキーの存在や行動...擬似コードを実行:

onload = check cookie 
if cookie is present 
    run function 
else 
    set cookie 
    reload 

あなたはクッキーに時間をチェックし、経過した時間の期間(例えば1時間)の後に関数を実行することを選択することができるの... ..

1

ハッシュタグを使用して、ページがリロードされたかどうかを示す変数を設定します。あなたはこのような何か行うことができます:

// Get the hash of the page 
var hashstring = window.location.hash.substring(1); 
var found = false; 

// Do a hash exist? 
if (hashstring.length > 0) 
{ 
    // Split the hash by '&'-sign (in case you have more variables in the hash, as I have) 
    var a = hashstring.split("&"); 

    // Loop through the values 
    for (i = 0; i < a.length; i++) 
    { 
     // Split the string by '=' (key=value format) 
     var b = a[i].split("="); 

     // If the key is 'reloaded' (which tells us if the page is reloaded) 
     if(b[0] == 'reloaded') 
     { 
      found = true; 
     } 
    } 
}  

if(!found) 
{ 
    location.hash = 'reloaded=true'; 
    window.location.reload(); 
} 

// Do other stuff, this will only be executed if the page has been reloaded 

を私は私のプロジェクトで別々の機能でハッシュで変数を見つけたコードを入れてきましたが、簡単FOT私は上記のここにこれを追加しました。これにより、ページがリロードされたかどうかを判断し、ページがある場合にのみコードを実行することができます。