Wechat / Weixin JavaScript Bridge(WeixinJSBridge)使用WeixinJSBridgeReady事件监听器和函数作为参数

时间:2014-11-15 10:29:46

标签: javascript api events wechat weixinjsbridge

当有人使用微信(Weixin)分享我的一个游戏(用JavaScript制作)时,我正在使用WeixinJSBridge来修改共享参数。

下面的代码位于一个大的JavaScript文件(超过2500行,大约100 KB)的末尾,在任何函数或对象之外,就像一个魅力,当WeixinJSBridge是WeixinJSBridge时,WECHAT_onBridgeReady函数被调用。准备好(使用微信/微信游戏):

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

但是下面的代码没有(从不调用WECHAT_onBridgeReady):

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

我想知道为什么将funcion作为参数传递(不起作用)和传递一个调用函数的封装函数(有效)之间存在差异。

在这里你可以看到游戏(2006年制作,代码是乱七八糟的西班牙语,但我现在正在尝试修改它以改进它并使其适应现代移动设备):http://yasminoku.tuxfamily.org/new/online/( JavaScript文件位于http://yasminoku.tuxfamily.org/new/online/yasminoku.js

在之前的另一个游戏中,这两种方法都适用于我,但JavaScript文件更加小(大约8KB),设置事件监听器的代码放在该文件的开头。这就是为什么我认为这个问题可能与文件需要完全加载并由JavaScript引擎解析的时间有关,但我不确定。

有人知道原因吗?

提前谢谢。

干杯,  琼

1 个答案:

答案 0 :(得分:1)

我认为您应该在脚本WECHAT_onBridgeReady之前定义方法document.addEventListener(...)