0

ウィンドウぼかしイベントでjqueryダイアログボックスをトリガーする必要があります。ただし、ページに複数のフレームを持つフレームセットが存在するため、ダイアログはスローされません。そこで、フレームの 1 つに空の div を作成し、生成されたダイアログを追加しました。これで、ダイアログが 1 回だけスローされます。しかし、ウィンドウでぼかしイベントが発生するたびにスローする必要があります。

前もって感謝します。

ブラウザ: Chrome、Firefox、IE9。

含まれる Jquery lib: jquery-1.3.2.js、jquery-ui-1.7.2.js、jQuery-ui-1.7.2.css

より詳しい情報:

2番目のフレームでこの空のdivを作成しました

<div id='testpop'></div>

一般的なjsファイルで次のコードを使用して、ぼかしイベントをトリガーしました

$(window).blur(function() {
    ConfirmBox();
});

function ConfirmBox() {
    var timer;
    $('<div id="confirm" style="display: none"><p>Are you sure?</p></div>').dialog({
        closeOnEscape: false,
        resizable: false,
        position: top,
        width: 500,
        modal: true,

        open: function(event, ui) {
            timer = setTimeout(function() { alert("Logout"); }, 30000); 
        },
        buttons:
                                {
                                    "Logout": function() {
                                        alert("Logout");

                                    },
                                    "Resume": function() {
                                        $(this).dialog("close");
                                        clearTimeout(timer);
                                    }
                                }
    });
    if ($(window.frames[1].document)) {
        $('#testpop', window.frames[1].document).html($('#confirm').parent());
        $('#testpop', window.frames[1].document).show();
    }
}

このコードに基づいて、最初のぼかしイベントのページでダイアログ ボックスを 1 回スローしています。次回はぼかしイベントが適切にトリガーされません。

コードに何か見落としがある場合はお知らせください。

4

0 に答える 0