2014-11-15 6 views
0

Я использую 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

ответ

1

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

 Смежные вопросы

  • Нет связанных вопросов^_^