You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否使用jQuery检测MetaMask当前连接的是否为BSC主网RPC网络

检测可行性说明

完全可行。需要注意的是,检测MetaMask网络的核心逻辑不依赖jQuery,jQuery仅用于配合处理DOM交互、页面提示更新等操作,实际的网络状态获取是调用MetaMask注入到页面的window.ethereum全局Provider接口实现,二者不存在冲突。

具体实现逻辑
  • 首先判断window.ethereum对象是否存在,确认用户已安装MetaMask钱包
  • 调用eth_chainIdRPC方法获取当前钱包连接的链ID,BSC主网的链ID固定为0x38(十进制值为56)
  • 对比返回的链ID是否匹配BSC主网值,按需执行后续业务逻辑或者更新页面提示
  • 可选:监听chainChanged事件,用户主动切换MetaMask网络时可实时更新状态,无需刷新页面
代码示例
// 直接在jQuery的ready回调中执行检测逻辑即可
$(document).ready(async function() {
  // 检测是否安装MetaMask
  if (typeof window.ethereum === 'undefined') {
    $('#network-tip').text('请先安装MetaMask钱包');
    return;
  }

  try {
    // 获取当前连接的链ID
    const currentChainId = await window.ethereum.request({ method: 'eth_chainId' });
    const BSC_MAINNET_ID = '0x38';

    if (currentChainId === BSC_MAINNET_ID) {
      $('#network-tip').text('已连接BSC主网,可正常使用功能');
      // 此处写入连接成功后的业务逻辑
    } else {
      $('#network-tip').text('当前未连接BSC主网,请切换钱包网络');
      // 此处可追加引导用户切换网络的逻辑
    }
  } catch (err) {
    console.error('获取网络状态失败:', err);
    $('#network-tip').text('获取钱包网络状态失败,请刷新页面重试');
  }

  // 监听用户主动切换网络的事件,实时更新状态
  window.ethereum.on('chainChanged', (newChainId) => {
    if (newChainId === '0x38') {
      $('#network-tip').text('已切换到BSC主网');
    } else {
      $('#network-tip').text('当前未连接BSC主网,请切换钱包网络');
    }
  });
});

内容的提问来源于stack exchange,提问作者Tapas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 23:57:01