Обновление (F5), не работающий в Диалоговом окне jQuery

Я использую диалоговый виджет jQuery для отображения модального поля. Однако при нажатии F5, в то время как модальное открыто, никакого обновления не происходит. Какая-либо идея?

Интересное обновление:

Попробуйте эту демонстрацию: http://jqueryui.com/demos/dialog/#modal-message Теперь, когда фокус идет "хорошо" кнопка, затем обновление (F5) работы, однако когда кнопка не имеет фокуса, затем это не делает.

Обновление 2

Мы можем на самом деле просто добавить любой вид управления к диалоговому окну, установить высоту и ширину к 0 CSS и установить внимание на него для получения работы обновления. Это не лучшее решение все же. Я все еще пытаюсь получить работу нажатия клавиши.

Обновление 3

Следующее, кажется, работает на данный момент:

$(document).keydown(function(e)
{
    if (e.which == 116) // key code of the F5 button
    {
        document.location.reload();
     }
}); 

7
задан vikasde 6 January 2010 в 16:00
поделиться

3 ответа

Кажется, это обычная проблема, и я не вижу удовлетворительного ответа. Есть несколько похожих вопросов по переполнению стека, и лучший ответ, который я видел, это захват клавиш и запуск самого действия (это было для входа, запускающего кнопку, так что f5 обновить может быть сложнее) Я видел это и сам в проекте, над которым работаю.

Я подозреваю, что установка modal в false может помочь, но я еще не пробовал.

Редактирование:

Я нашел это в строке 539 ui.dialog.js:

events: $.map('focus,mousedown,mouseup,keydown,keypress,click'.split(','),

Удаление клавиш и нажатие клавиш оттуда, казалось, позволяет работать обычным клавишам браузера. Теперь моя выглядит так:

events: $.map('focus,mousedown,mouseup,click'.split(','),

Я не знаю, какую функциональность я бы удалил, сделав это. Единственное место, где, похоже, используются события, это на линии 549:

$(document).bind($.ui.dialog.overlay.events, function(event) {
    var dialogZ = $(event.target).parents('.ui-dialog').css('zIndex') || 0;
    return (dialogZ > $.ui.dialog.overlay.maxZ);
});

Было бы неплохо по возможности исправить это в официальной версии.

.
6
ответ дан 7 December 2019 в 10:02
поделиться

Отображается ли диалоговое окно, перехватывающее событие нажатия клавиши F5 и останавливающее его распространение для 'F5'?

Проверьте код для перехвата подобного рода нажатий клавиш. Это многое объясняет!

0
ответ дан 7 December 2019 в 10:02
поделиться

У меня было подобное проблемы, но обнаружил, что вставил «return false;», который останавливал регистрацию всех других ключей. Например, «return false» ниже остановит распознавание всех других клавиш (например, F5), кроме xxx и yyy.

$(document).keydown(function(e){
if (e.keyCode == xxx) {/*do something*/}
if (e.keyCode == yyy) {/*do something*/}
return false;
});

Так что просто уберите "return false".

0
ответ дан 7 December 2019 в 10:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: