全体表示

[ リスト ]

ページ移動前に確認ダイアログ

beforeunload イベントで文字列を返すと、そのページから移動(ページを更新、ブラウザを閉じる)しようとする前に、確認ダイアログが出せる。
  • サンプルコード(jQuery)
    $(window).bind('beforeunload', function(e) {
        return "<任意の文字列>";
    });
確認ダイアログの内容はブラウザ依存。
  • IE
    このページからほかのページに移動しますか?

    <任意の文字列>

    続行するには [OK] をクリックし、現在のページから移動しない場合は [キャンセル] をクリックしてください。

    [OK] [キャンセル]
  • Firefox
    このページから移動します。よろしいですか?

    <任意の文字列>

    "OK"を押すと移動、"キャンセル"を押すと現在のページにとどまります。

    [キャンセル] [OK]
  • Safari
    このページから移動してもよろしいですか?

    <任意の文字列>

    このページから離れる場合は"OK"をクリックし、このページに残る場合は"キャンセル"をクリックしてください。

    [キャンセル] [OK]
  • Chrome
    <任意の文字列>

    [このページにとどまる] [このページを離れる]
  • Opera
    beforeunload 未対応

IE だと href に javascript が書かれたリンクをクリックしても beforeunload が発生するので、その対策が必要。以下のサンプルでは、フラグを用意してクリック時にフラグを設定するようにした。

サンプルページ http://labs.irons.jp/tmp/beforeunload.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>beforeunload</title>
</head>
<body>
<a href="http://labs.irons.jp/">hoge</a><br>
<a href="javascript:void(0)">fuga</a>
<form>
<input type="submit"></input>
</form>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>

<script type="text/javascript">

$(function(){
var execBeforeUnload = true; // 確認ダイアログを出すかどうかのフラグ
function cancelBeforeUnload() {
    execBeforeUnload = false;
    setTimeout(function() {
        execBeforeUnload = true;
    }, 1000);
}

// IE だと href="javascript:void(0)" といったリンクを
// クリックしても beforeunload が発生するのでキャンセルする
$("a").bind('click', function(e) {
    if (this.href.indexOf('javascript') == 0) {
        cancelBeforeUnload();
    }
});

// form の submit 時に beforeunload が発生するのでキャンセルする
$('form').bind('submit', function(e) {
    cancelBeforeUnload();
});

$(window).bind('beforeunload', function(e) {
    if (execBeforeUnload) {
        return "<任意の文字列>";
    }
});
});
</script>
</body>
</html>

閉じる コメント(0)

コメント投稿
名前パスワードブログ
投稿

閉じる トラックバック(0)

トラックバックされた記事

トラックバックされている記事がありません。

トラックバック先の記事

  • トラックバック先の記事がありません。

芸能人・有名人の新着記事

Yahoo Image
天津 木村
ラフブロ
05月29日 05:42

.
検索 検索
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
  今日 全体
訪問者 0 11295
ブログリンク 0 12
コメント 0 23
トラックバック 0 1

ironsJP
人気度

ヘルプ

Yahoo Image

開設日: 2010/3/20(土)


プライバシーポリシー -  利用規約 -  ガイドライン -  順守事項 -  ヘルプ・お問い合わせ

Copyright (C) 2012 Yahoo Japan Corporation. All Rights Reserved.