Wechat / Weixin JavaScript Bridge (WeixinJSBridge), использующий прослушиватель событий WeixinJSBridgeReady и функцию в качестве параметра

Я использую WeixinJSBridge для изменения параметров общего доступа, когда кто-то делится одной из моих игр (с JavaScript) с помощью Wechat (Weixin).

Следующий код, который находится в конце большого файла JavaScript (более 2500 строк, около 100 КБ) и находится вне какой-либо функции или объекта, работает как шарм, и функция WECHAT_onBridgeReady вызывается, как и ожидалось, когда WeixinJSBridge готов (используя игра в Wechat / Weixin):

if (document.addEventListener)
{
    document.addEventListener('WeixinJSBridgeReady', function() { WECHAT_onBridgeReady(); }, false);
}

Но следующий код этого не делает (WECHAT_onBridgeReady никогда не вызывается):

if (document.addEventListener)
{
    document.addEventListener('WeixinJSBridgeReady', WECHAT_onBridgeReady, false);
}

Я хотел бы знать, почему существует разница между передачей функции в качестве параметра (которая не работает) и передачей инкапсулированной функции, которая вызывает функцию (которая работает).

Здесь вы можете увидеть игру (сделанную в 2006 году, код является беспорядочным и на испанском языке, но я пытаюсь изменить его сейчас, чтобы улучшить его и адаптировать к современным мобильным устройствам): http://yasminoku.tuxfamily.org/new/online/ (файл JavaScript находится по http://yasminoku.tuxfamily.org/new/online/yasminoku.js)

Оба метода работали раньше для меня в другой предыдущей игре, но файл JavaScript был намного меньше (около 8 КБ), и код, который устанавливает прослушиватели событий, был помещен в начало этого файла. Вот почему я думаю, что эта проблема может быть связана со временем, когда файл должен быть полностью загружен и проанализирован механизмом JavaScript, но я не уверен.

Кто-нибудь знает причину, пожалуйста?

Заранее спасибо.

Ура, Джоан

1 ответ

Я думаю, что вы должны определить метод WECHAT_onBridgeReady перед сценарием document.addEventListener(...),

Другие вопросы по тегам