ウィンドウぼかしイベントで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 回スローしています。次回はぼかしイベントが適切にトリガーされません。
コードに何か見落としがある場合はお知らせください。