2016-12-04 17 views
0

に適切なメッセージを表示しますページの読み込み中にポップアップを表示しますか?通話機能は、私は私はこのような呼び出し、ページをリロードonclickの機能を持っているのJavascript

ここでは、ページのリロードに30〜50秒かかることがあるので、エンドユーザーに何かを表示する必要があります。

誰かがこれで私を助けることができますか?

+0

:ここ

が完了、実施例(jsFiddleまたはスタックスニペットでは正しく動作しません、それらを様々な方法で環境をサンドボックス化されている)ですか? – Mahi

+0

アラート、またはユーザーに何かが起きたことを知らせるためのポップアップメッセージなど – User987

+0

実行中のコードを破棄するページの再読み込みが行われています。 1つのオプションは、コントロールを保持し、Ajax呼び出しでページをリロードし、ページを返されたHTMLに置き換えることです。コードがまだそのように実行されているので、ロード中に好きなことをすることができます。 –

答えて

1

文字通り既存のページをリロードする必要がある場合(ajax呼び出しなどに切り替えるのではなく)、ページ内の「リロード」メッセージを送信することはできません。セッションストレージフラグので、我々は、我々はそれをやったかどうかを知る

var wnd = window.open("reloading.html", "reloading", "width=400,height=400,toolbar=no); 
sessionStorage.setItem("reloading", "Yes"); 

注:何行うことができますは名前の子ウィンドウ開いています。そして、あなたはリロードしているページのスタートアップコードでは、そのウィンドウ閉じる:

if (sessionStorage.getItem("reloading")) { 
    sessionStorage.removeItem("reloading"); 
    var wnd = window.open("", "reloading"); 
    if (wnd) { 
     wnd.close(); 
    } 
} 

奇妙に見えますが、あなたのページの起源は戻っへのアクセス権を持って開いているウィンドウとして"" URLと同じ名前でwindow.openを呼び出します既存のウィンドウへの参照を閉じることができます。

フラグが重要なのは、window.open新しいウィンドウを開こうとするためです。このウィンドウは、ブラウザのポップアップブロッカーをほぼ確実に起動します。あなたはポップアップにリロードページ中にしたい

<!DOCTYPE HTML "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Reloading Window Example</title> 
<style> 
body { 
    font-family: sans-serif; 
} 
</style> 
</head> 
<body> 
<input type="button" value="Reload"> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
<script> 
if (sessionStorage.getItem("reloading")) { 
    sessionStorage.removeItem("reloading"); 
    var wnd = window.open("", "reloading", "height=400,width=400,toolbar=no"); 
    if (wnd) { 
     wnd.close(); 
    } 
} 
$("input").on("click", function() { 
    var wnd = window.open("", "reloading", "height=400,width=400,toolbar=no"); 
    wnd.document.write("<!doctype html><head><title>Reloading</title></head><body>Reloading...</body></html>"); 
    setTimeout(function() { 
     sessionStorage.setItem("reloading", "Yes"); 
     location.reload(); 
    }, 2000); 
}); 
</script> 
</body> 
</html> 
0

ページのリロード後に変更される内容にもよりますが、「読み込み中」というメッセージが表示されている場合は、その間に何かを読み込む必要があります。その目的の使用AJAXについては

(あなたはjqueryのを使用しているとして): http://api.jquery.com/jquery.ajax/

は、ページまたは全く新しいページの一部を、結果をロードし、成功コールバックに置き換える必要があります何でも交換してください。

関連する問題