2016-11-01 5 views
-1

隠しIframeを使用してバックグラウンドでページを更新し、ページ全体を更新せずにアクセストークンを最新の状態に保ちます。この作業はIE以外のブラウザではうまくいきますが、IEではリフレッシュが起きると、IEはデスクトップ上の何かからフォーカスを奪ってしまいます。だから私の質問は、隠されたIframeの代わりに、またはこれを処理するための良い方法は、ajaxの代替ですか?非表示のIframe Refresh Ajaxの代わりに?

<iframe Id="hidden" src="https://www.xxxxxxxx.com" 
    style="visibility: hidden; 
     position: absolute; 
     left: 0; top: 0; 
     height:100%; width:0; 
     border: none;" 
    onload="refresh()"> 
</iframe> 
<script> 
    function refresh() { 
     console.clear(); 
     setTimeout(refreshCookie, 60000); 
     function refreshCookie() { 
      document.getElementById('hidden').src = document.getElementById('hidden').src; 
     }; 
    }; 
</script> 
+1

他のページは別のドメインにありますか?そうであれば、起源を越えた問題が発生します。 – Archer

答えて

0
const refresh =() => { 
    var xhttp = new XMLHttpRequest(); 
    xhttp.onreadystatechange =() => { 
     if (this.readyState == 4 && this.status == 200) { 
       // Request ok. 
     } 
    }; 

    xhttp.open("GET", "YOUR.URL", true); 
    xhttp.send(); 
}  

setInterval(refresh, 10000); //refresh every 10 seconds. 

基本的なAJAX要求を行う必要があります。これは私のコードです。

EDIT: - あなたの質問のコメントでArcherが言ったように、クロスドメインの場合は動作しません。

+0

定期的にページを更新する場合は、 'setTimeout'または' setInterval'を追加してください。 – nicovank

+0

申し訳ありません私はajaxに非常に新しいです。どこにURLとsettimeoutを入れますか? – llerdal

+0

@llerdal - あなたは上記のコメントで私の質問をチェックする必要があります。ページが別のドメインにある場合、これは機能しません。 – Archer

関連する問題