metamask web3 未定义
2018-06-27
1889
我在本地电脑上搭建了一个eth节点,代码没有问题,但是退出eth节点,用metamask运行代码,web3是undefined。
能告诉我怎么解决这个问题吗?
<!DOCTYPE html>
<html>
<head>
<title>Using web3 API with MetaMask</title>
<script src="https://cdn.jsdelivr.net/gh/ethereum/web3.js/dist/web3.min.js"></script>
<!-- for ecrecover -->
<script type="text/javascript" src="D:\blockchain\test\ethereum\ethereumjs-util.js"></script>
<script>
window.addEventListener('load', function() {
// Checking if Web3 has been injected by the browser (Mist/MetaMask)
if (typeof web3 !== 'undefined') {
// Use Mist/MetaMask's provider
window.web3 = new Web3(web3.currentProvider);
} else {
console.log('No web3? You should consider trying MetaMask!')
window.web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
}
</script>
</head>
</html>
2个回答
您是否尝试从
file://
提供服务?如果是这样,它将无法工作。MetaMask 拒绝提供文件系统 URL。通过 Web 服务器为您的应用程序提供服务。一行命令(例如
python -m SimpleHTTPServer 8000
)即可。
user10470356
2018-10-07
当你的以太坊节点宕机时,你的网站无法从你的节点获取信息,你可以切换到infura.io提供商
window.web3 = new Web3(new Web3.providers.HttpProvider("https://mainnet.infura.io"))
Yegor
2018-10-08