0

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

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

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 文件要小得多(大约 8KB),并且设置事件侦听器的代码放在该文件的开头。这就是为什么我认为这个问题可能与文件需要完全加载并由 JavaScript 引擎解析的时间有关,但我不确定。

请问有人知道原因吗?

先感谢您。

干杯,琼

4

1 回答 1

1

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

于 2015-05-07T15:28:30.567 回答