Ich habe mit diesem Projekt gearbeitet und bereits alle Abhängigkeiten und Web3 heruntergeladen, aber wenn ich meinen Code teste, wird mir Folgendes angezeigt:
Uncaught ReferenceError: Web3 is not defined
in Zeile 120.
Das ist mein Code:
<script>
if(typeof web3 !== 'undefined'){
web3 = new Web3(web3.currentProvider); -this is where it errors
}else {
web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
}
web3.eth.defaultAccount = web3.eth.accounts[0];
var SuffrageContract = web3.eth.contract('example');
var Suffrage = SuffrageContract.at('example');
console.log(Suffrage);
Ich habe bereits mehrere Methoden wie das Deklarieren ausprobiert
web3 = required('web3');
aber es funktioniert immer noch nicht.
Ich hoffe, Sie verwenden web3
als Browsermodul.
Wie in ihrer Dokumentation können Sie den CDN-Link mit <script>
Tags wie unten hinzufügen,
<script src="https://cdn.jsdelivr.net/gh/ethereum/web3.js/dist/web3.min.js"></script>
Verpacken Sie diesen Code mit einem window.addEventListener('load',...)
Handler?
Lesen Sie hier: Web3 - Ethereum Browser Environment Check
Beachten Sie, dass die Umgebungsprüfung
web3
in einenwindow.addEventListener('load', ...)
Handler eingeschlossen ist. Dieser Ansatz vermeidet Race-Conditions mit Web3-Injection-Timing.
window.addEventListener('load', function() {
// Checking if Web3 has been injected by the browser (Mist/MetaMask)
if (typeof web3 !== 'undefined') {
// Use Mist/MetaMask's provider
web3js = new Web3(web3.currentProvider);
} else {
console.log('No web3? You should consider trying MetaMask!')
// fallback - use your fallback strategy (local node / hosted node + in-dapp id mgmt / fail)
web3js = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
}
// Now you can start your app & access web3 freely:
startApp()
})
Shawn Tabrizi
web3.js
Datei eingefügt?JeffNUCode
Achala Dissanayake
<script src="https://cdn.jsdelivr.net/gh/ethereum/web3.js/dist/web3.min.js"></script>
JeffNUCode
JeffNUCode