Переменная в приложении Phonegap

63
9

Я разрабатываю приложение Phonegap на каждой платформе. Все идет хорошо, кроме объявления переменной. Вот мой код:

<script type="text/javascript" src="phonegap.js"></script>
<script type="text/javascript">
var something = "Sth";
document.addEventListener('deviceready',startsth(),false);
function startsth(){document.write(something);}
....
</script>

Когда я пытаюсь проверить, есть ли интернет, приложение выводит "undefined". Он отлично работает, если я не проверю сеть. Как я могу исправить проблему?

спросил(а) 2021-01-28T00:41:38+03:00 3 месяца, 1 неделя назад
1
Решение
77

Вы подключаете обработчик deviceready неправильно:

document.addEventListener('deviceready',startsth(),false);
^------ REMOVE THIS PARENS

когда вы подключаетесь к startsth() вы используете возвращаемое значение функции startsth вместо указателя на функцию, которая только startsth

ответил(а) 2021-01-28T00:41:38+03:00 3 месяца, 1 неделя назад
44

Использовать это:

<script type="text/javascript" src="phonegap.js"></script>
<script type="text/javascript">
var something = "Sth";
document.addEventListener('deviceready',startsth,false);
function startsth(){document.write(something);}
....
</script>

Вы сразу startsth функцию startsth со скобками, то есть startsth(), а не просто передавали ее как ссылку на функцию, которая должна быть зарегистрирована в качестве слушателя, которая должна быть вызвана позже при событии deviceready.

ОБНОВИТЬ:

Другие вещи, чтобы попробовать:


Убедитесь, что у вас правильный путь для src= "phonegap.js".

Переместите скрипты в верхней части документа, чтобы вы не пропустили никаких событий.

Переключите порядок скриптов в случае, если событие запускается очень быстро, и вам не хватает его.

Не используйте document.write(...) - он переопределяет содержимое страницы, если вызвано после загрузки DOM, что приводит к большей части пустой страницы.

ответил(а) 2021-01-28T00:41:38+03:00 3 месяца, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема