Окно подтверждения javascript, приводящее к тому, что плагин jquery idleTimeout показывает диалог в неправильное время
Я использовал jquery-плагин idleTimeout от erichynds.com, и он отлично работал в Firefox и IE... однако я обнаружил странную проблему при использовании этого в chrome 11.0 .
Я использую javascript "подтвердить" предупреждения, чтобы помочь обработать удаление элементов. В Chrome каждый раз, когда вызывается окно подтверждения, появляется диалоговое окно "idleTimeout", как если бы пользователь находился в режиме ожидания, а мышь не двигалась... это происходит сразу после нажатия одной из кнопок в окне подтверждения.
Я попытался использовать диалоговое окно jquery ui вместо поля "javascript" подтверждения, и проблема исчезла, однако мне пришлось использовать "синхронное" поле подтверждения из-за моих требований, поэтому мне пришлось отказаться от диалогового окна jquery ui коробка.
Есть идеи как обойти эту проблему? Заранее спасибо.
1 ответ
Нашел решение по этой ссылке, примерно вдвое меньше, чем другой пользователь опубликовал это исправление для всех, кто сталкивался с этим.
No idea why Chrome alert/confirm causes idle to be triggered, but here is my work-around. In jquery.idletimer.js, the toggleSTate function, replace the the "// reset timeout counter" with:
// reset timeout counter
var elapsed = (+new Date) - f.olddate;
f.olddate = +new Date;
// handle Chrome always triggering idle after js alert or comfirm popup
if (idle && (elapsed < timeout)) {
idle = false;
clearTimeout($.idleTimer.tId);
if (enabled)
$.idleTimer.tId = setTimeout(toggleIdleState, timeout);
return;
}