タイトルの通り、ページを閉じた際にアラートを表示させたいと思っています。
具体的に実現したいことは
・ページを戻る、もしくは閉じた際にアラートを指定のメッセージで表示
・別のページへ促すリンクとそのボタンの設置(ページを離れる、ページにとどまると同じように)
この2点です。
現在書いているコードはhtml上に書き込んでおり、アラート内のボタン設置は一旦留め、メッセージのみ実現させようとしています。
下記カードでカスタムメッセージについてはIEでのみ動作確認できましたが、それ以外では動作しませんでした。できればchromeでカスタムメッセージを表示させたいと思っております。
PHP
1 2<?php wp_enqueue_script('jquery'); ?> 3 4<?php 5 $alert_pages = array(); 6 if( in_array($alert_pages)): ?> 7<script> 8 jQuery(document).ready(function(){ 9 jQuery(window).on("beforeunload", function(e){ 10 return "メッセージ"; 11 }); 12 jQuery("input[type=submit], input[type=button], input[type=image]").click(function() { 13 jQuery(window).off('beforeunload'); 14 }); 15 }); 16</script> 17
PHP
1<script type="text/javascript"> 2 var postsw = 0; 3 if (window.attachEvent){ 4 window.attachEvent('onbeforeunload', unloadCheck); 5 } 6 else { 7 window.addEventListener('beforeunload', unloadCheck, false); 8 } 9 10 function unloadCheck(ev) { 11 12 var str; 13 if ( postsw == 0 ) { 14 str = "★★★★★★★★★★★★★★★★★★★★★★\n"; 15 str += " ページを移動しないで下さい!!\n"; 16 str += "★★★★★★★★★★★★★★★★★★★★★★\n"; 17 ev.returnValue = str; 18 return str; 19 } 20 } 21</script>
PHP
1<script> 2 $(function() { 3 var elementClicked = false; // 適当なフラグ 4 $(window).on("beforeunload", function() { 5 if (!elementClicked) { 6 return "本当に遷移しちゃう?"; 7 } 8 }); 9 $(document).on("click", "a, button, input[type=submit]", function() { 10 elementClicked = true; 11 setTimeout(function() { elementClicked = false; }, 100); 12 }); 13 }); 14</script> 15
上記の3つのコードはどれもコピペです。
今後これらのコードを元に編集をしていこうと考えておりますが、参考にするべきサイトや現環境でも動作するイベントハンドラなど教えて頂けないでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/17 22:59