1

我正在使用 web3js 和 metamask 构建客户端 Web 应用程序。我在一个文件夹中有 web3 javascript 文件,并在 firefox 上安装了元掩码。我包含了带有 HTML 脚本标签的 web3 文件,并在代码中建立了元掩码连接。

不过,我不断收到错误“ReferenceError:未定义 web3”

有人可以帮我解决这个问题或如何为客户端应用程序连接 web3 和元掩码吗?

<script language="javascript" type="text/javascript" src="js/web3.min.js"></script>


        window.addEventListener('load', function() {

            if (typeof web3 !== 'undefined') {
                web3js = new Web3(web3.currentProvider);
            } else {
             // set the provider you want from Web3.providers
                web3js = new Web3(new Web3.providers.HttpProvider("http://10.50.0.3:22000"));
            }

            // Now you can start your app & access web3 freely:
            startApp();

        })

4

1 回答 1

0

用以下代码段替换 if 条件:

let web3
if(typeof window !== 'undefined' && typeof window.web3 !== 'undefined'){
  //We are in the browser and metamask is running
  web3 = new Web3(window.web3.currentProvider);
}

因为 metamask 将注入 web3 对象并绑定到窗口变量

于 2019-05-03T09:09:35.417 回答