Я использую WeixinJSBridge для изменения параметров совместного доступа, когда кто-то делится одной из моих игр (с использованием JavaScript) с помощью Wechat (Weixin).Wechatin JavaScript Bridge (WeixinJSBridge) с помощью прослушивателя событий WeixinJSBridgeReady и функции как параметр
Следующий код, который находится в конце большого файла JavaScript (более 2500 строк, около 100 КБ) и вне любой функции или объекта, работает как шарм, а функция WECHAT_onBridgeReady вызывается как ожидается, когда WeixinJSBridge готов (с помощью игры в WeChat/Вэй Синь):
if (document.addEventListener)
{
document.addEventListener('WeixinJSBridgeReady', function() { WECHAT_onBridgeReady(); }, false);
}
Но следующий код не нет (WECHAT_onBridgeReady никогда не называется):
if (document.addEventListener)
{
document.addEventListener('WeixinJSBridgeReady', WECHAT_onBridgeReady, false);
}
Я хотел бы знать, почему существует разница между передачей функции в виде ameter (который не работает) и передает инкапсулированную функцию, которая вызывает функцию (которая работает).
Здесь вы можете увидеть игру (сделано в 2006 году, код беспорядок и на испанском языке, но я пытаюсь изменить его сейчас, чтобы улучшить его и адаптировать к современным мобильным устройствам): http://yasminoku.tuxfamily.org/new/online/ (файл JavaScript в http://yasminoku.tuxfamily.org/new/online/yasminoku.js)
Оба метода работали раньше для меня в другой предыдущей игре, но файл JavaScript был намного меньше (около 8 КБ), а код, устанавливающий прослушиватели событий, был помещен в начало этого файла. Вот почему я думаю, что эта проблема может иметь какое-то отношение к времени, когда файл должен быть полностью загружен и проанализирован движком JavaScript, но я не уверен.
Кто-нибудь знает причину, пожалуйста?
Благодарим вас заблаговременно.
Cheers, Joan