微信/微信JavaScript桥(WeixinJSBridge)使用微信JSBridgeReady事件监听器并函数作为参

Wechat / Weixin JavaScript Bridge (WeixinJSBridge) using WeixinJSBridgeReady event listener and function as parameter

本文关键字:微信 监听器 事件 函数 JSBridgeReady JavaScript WeixinJSBridge      更新时间:2023-09-26

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

下面的代码位于一个大的JavaScript文件(超过2500行,大约100 KB)的末尾,在任何函数或对象之外,就像一个魅力,当微信JSBridge准备就绪时,函数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 引擎解析的时间有关,但我不确定。

请问有人知道原因吗?

提前谢谢你。

干杯 琼

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