JavaScriptでアラートを出して、ページをリロードしないように警告しています。しかし、私は彼らがアラートなしに他のページにナビゲートすることができるようにしたい、ちょうど現在のページをリフレッシュしないでください。私はいくつかのアラートを見つけましたが、どちらの場合もアラートを提供するか、アラートを提供して、とにかくページをリフレッシュします。私は、ユーザーに警告を与えてから、ページをリフレッシュさせないようにしたい。私はそれは彼らがまたそれを残した後にページに戻ることができないべきであることを意味すると思いますか?JavaScript/HTML Page Refresh Alert
-1
A
答えて
0
<body onunload="window.alert('Hello!');">
0
次のようにあなたがonbeforeunload
を使用して、変数を設定することができます。
var l=false;
window.onbeforeunload = function() {
if (!l) {
return "you shouldn't leave";
}
}
<a href="//google.com" onclick="l=true">Leave</a>
を(それはiframe内にありますので、これは、ファイル名を指定して実行スニペットでは動作しません)
+0
これは私が使いこなしたものですが、それは良いことですが、ユーザーが別のページに移動できるようにしたいのです。 – fryingpantheist
-1
これは役に立つかもしれません。上記のコードと合わせて;;;
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
#dialogoverlay{
display: none;
opacity: .8;
position: fixed;
top: 0px;
left: 0px;
background: #FFF;
width: 100%;
z-index: 10;
}
#dialogbox{
display: none;
position: fixed;
background: #000;
border-radius:7px;
width:550px;
z-index: 10;
}
#dialogbox > div{ background:#FFF; margin:8px; }
#dialogbox > div > #dialogboxhead{ background: #666; font-size:19px; padding:10px; color:#CCC; }
#dialogbox > div > #dialogboxbody{ background: #333; padding:20px; color:#FFF; }
#dialogbox > div > #dialogboxfoot{ background: #666; padding:10px; text-align:right; }
</style>
<script>
function CustomAlert(){
this.render = function(dialog){
var winW = window.innerWidth;
var winH = window.innerHeight;
var dialogoverlay = document.getElementById('dialogoverlay');
var dialogbox = document.getElementById('dialogbox');
dialogoverlay.style.display = "block";
dialogoverlay.style.height = winH+"px";
dialogbox.style.left = (winW/2) - (550 * .5)+"px";
dialogbox.style.top = "100px";
dialogbox.style.display = "block";
document.getElementById('dialogboxhead').innerHTML = "Acknowledge This Message";
document.getElementById('dialogboxbody').innerHTML = dialog;
document.getElementById('dialogboxfoot').innerHTML = '<button onclick="Alert.ok()">OK</button>';
}
this.ok = function(){
document.getElementById('dialogbox').style.display = "none";
document.getElementById('dialogoverlay').style.display = "none";
}
}
var Alert = new CustomAlert();
function deletePost(id){
var db_id = id.replace("post_", "");
// Run Ajax request here to delete post from database
document.body.removeChild(document.getElementById(id));
}
function CustomConfirm(){
this.render = function(dialog,op,id){
var winW = window.innerWidth;
var winH = window.innerHeight;
var dialogoverlay = document.getElementById('dialogoverlay');
var dialogbox = document.getElementById('dialogbox');
dialogoverlay.style.display = "block";
dialogoverlay.style.height = winH+"px";
dialogbox.style.left = (winW/2) - (550 * .5)+"px";
dialogbox.style.top = "100px";
dialogbox.style.display = "block";
document.getElementById('dialogboxhead').innerHTML = "Confirm that action";
document.getElementById('dialogboxbody').innerHTML = dialog;
document.getElementById('dialogboxfoot').innerHTML = '<button onclick="Confirm.yes(\''+op+'\',\''+id+'\')">Yes</button> <button onclick="Confirm.no()">No</button>';
}
this.no = function(){
document.getElementById('dialogbox').style.display = "none";
document.getElementById('dialogoverlay').style.display = "none";
}
this.yes = function(op,id){
if(op == "delete_post"){
deletePost(id);
}
document.getElementById('dialogbox').style.display = "none";
document.getElementById('dialogoverlay').style.display = "none";
}
}
var Confirm = new CustomConfirm();
</script>
</head>
<body>
<div id="dialogoverlay"></div>
<div id="dialogbox">
<div>
<div id="dialogboxhead"></div>
<div id="dialogboxbody"></div>
<div id="dialogboxfoot"></div>
</div>
</div>
<p id="post_1">
Today is a lovely day ...
<button onclick="Confirm.render('Delete Post?','delete_post','post_1')">Delete</button>
</p>
<p id="post_2">
I like pickles ...
<button onclick="Confirm.render('Delete Post?','delete_post','post_2')">Delete</button>
</p>
<button onclick="Alert.render('Hello World')">Custom Alert</button>
</body>
</html>
これにより、カスタムアラートを送信できます。
ここにコードの説明:Alert Box
関連する問題
- 1. Page Refresh JS
- 2. php javascript refresh page
- 3. asp.net with javascript page refresh
- 4. Refresh DivなしRefreshing Page
- 5. Firefox 6 Infinite Page Refresh With Page With Hash Tags
- 6. jQuery Refresh Captcha is Reloading Page
- 7. jQuery Mobile refresh page after changePage
- 8. Page SafariのRefresh問題
- 9. Angular deployment - 404 on page Refresh
- 10. Page Refresh(F5)後にAjax-SliderExtenderを失う
- 11. Alert in Alert ionic 3
- 12. page refresh後にcontentEditableがlocalStorageで機能しない
- 13. AngularJs Page Refreshサーバーで404ページが見つかりません
- 14. SignalR Page Refreshにより複数の接続が可能
- 15. page refreshの後にslideToggle()divを開いたままにしますか?
- 16. jquery wth out page refreshを使ってサーバーサイド関数を呼び出す方法は?
- 17. Page Refreshは前回の選択からDropDownListを再設定しません
- 18. Alert DialogueのGridView Android
- 19. Nativescript ListView Refresh
- 20. Refresh partialview
- 21. BootStrap Alert
- 22. onsubmit refresh htmlフォーム
- 23. Refresh iron-data-table
- 24. .htaccess RewriteRule domain.com/page/page to domain.com?p=page/page
- 25. Page Validation
- 26. Alert al = new Alert(ドライバ)の違いは何ですか? al.accept()およびdriver.switchTo()。alert()。accept();
- 27. jquery(javascript)refresh div
- 28. fancybox-3 open php page
- 29. BindingSource Refresh
- 30. Refresh DataGridView
私はちょっと調べてみましたが、ページの更新を検出する信頼できる、または決定的なイベントは見つかりませんでした。ページの更新が問題となる状況を避けることを検討することもできます。私はいくつかの方法を考えることができます: * POSTの上に '感謝の投稿'などを表示し、ヘッダやjavascriptを使って別のページにリダイレクトしてください。 * AJAXを使って投稿を行います操作。これを行うと、ブラウザの更新ボタンやF5はAJAXを再実行しませんが、現在のページを更新します。 –
このページでは、ユーザーに乱数を提供しています。新しい乱数を取得し続けることはできません。 – fryingpantheist
クッキーに保存することを検討してください。 「ユーザーがクッキーを持っていない場合は新しい乱数を割り当て、そうでない場合はクッキーから乱数を取得する」のようなものです。 –