#jquery #cordova
#jquery #кордова
Вопрос:
Я использую cordova и функцию onResume. Причина в том, что я хочу перезагрузить приложение, когда оно запускается из фона. Это работает нормально! Теперь проблема заключается в том, когда пользователь выбирает файл с полем ввода. Очевидно, что при выборе файла приложение также перемещается в фоновом режиме. Поэтому, когда файл выбран, приложение перезагружается, и выбранный файл исчезает.
Функция возобновления:
<script>
document.addEventListener("deviceready", function() {
document.addEventListener("resume", onResume, false);
}, false);
function onResume() {
setTimeout(function() {
window.location.reload(false);
}, 0);
}
</script>
Возможно ли отключить функцию возобновления при выборе файла?
Комментарии:
1. Да, просто используйте флаг или логическую переменную, что-то вроде
isFileSelected = true
, и еслиisFileSelected === true
тогда вы не перезагружаете.2. Спасибо за ваш ответ. Можете ли вы объяснить, как установить флаг, когда пользователь выбирает файл?
Ответ №1:
Вам нужно создать флаг или логическую переменную, которая определяет, когда используется файловый ввод.
<input type="file" id="myFileSelection">
jQuery — Запрос
$('#myFileSelection').click(function() {
window.isFileSelected = true;
});
Затем просто измените свою логику onResume, чтобы включить флаг.
document.addEventListener("deviceready", function() {
document.addEventListener("resume", onResume, false);
}, false);
function onResume() {
// if isFileSelected is true stop the code here with 'return false', will not execute the setTimeout
if (window.isFileSelected) {
// set this to false to reset the variable
window.isFileSelected = false;
return false;
}
setTimeout(function() {
window.location.reload(false);
}, 0);
}
Я не тестировал этот код, но, как правило, именно так вы можете это сделать.