Я построил узел eth на локальном ПК. Код не проблема. Но когда я вышел из узла eth, и используйте метамаску для запуска кода, web3 не определен.
Подскажите, как решить проблему?
<!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.info('No web3? You should consider trying MetaMask!')
window.web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
}
</script>
</head>
</html>



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы пытаетесь обслуживать из file://? Если так, то работать не будет. MetaMask отказывается обслуживать URL-адреса файловой системы. Обслуживайте свое приложение через веб-сервер. Подойдет однострочный файл, такой как python -m SimpleHTTPServer 8000.
Когда ваш узел Ethereum не работает, ваш веб-сайт не может получать информацию от вашего узла, вы можете переключиться на провайдера infura.io
window.web3 = new Web3(new Web3.providers.HttpProvider("https://mainnet.infura.io"))
Окружение: Chrome, метамаск