Я использую диалоговое окно jquery, которое использует iframe, чтобы сообщить пользователю, что сессия истекает.Я хотел бы обновлять этот диалог каждую секунду с помощью обратного отсчета, поэтому я бы хотел кэшировать ссылку на элемент обратного отсчета, чтобы нам не приходилось запрашивать DOM для него каждую секунду.сделать это разными способами, и я не могу заставить его работать.
$(documnet).ready(function() {
$("<iframe src='../active_timer.html' id='iframeDialog' />").dialog({
autoOpen: false,
title: "Your session is about to expire!",
modal: true,
width: 400,
height: 200,
closeOnEscape: false,
draggable: false,
resizable: false,
buttons: {
"Yes, Keep Working": function(){
$(this).dialog("close");
},
"No, Logoff": function(){
//log user out
}
}
});
// cache a reference to the countdown element.
// these below don't cache the reference I have tried them all.
var $countdown = $("#iframeDialog").contents().find("#dialog-countdown");
var $countdown = $("#dialog-countdown", window.child);
var $countdown = $("#dialog-countdown", $('iframe').get(0).contentDocument);
//this is where I update the #dialog-countdown every second after the reference is made.
});
active_timer.html:
<div id="dialog" style="overflow:hidden;">
<p>
<span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 25px 0;"></span>
You will be logged off in <span id="dialog-countdown"></span> seconds.
</p>
<p>Do you want to continue your session?</p>
</div>