1
私は最初のdappを動作させようとしています。私は近づいているのを知っていますが、web3には問題が残っています。キャッチされていないReferenceError:web3がwindow.onloadで定義されていません
私はPowerShellの経由testrpcノードを実行している、のWindows 10 に取り組んでいます。私はトリュフを使用して、&サンプルファイルをフォルダに設定し、コンパイルして移行しました。
私はトリュフによって建てapp.jsファイルから何かを変えないと思う...ここでそのコードは次のとおりです。
var accounts;
var account;
function setStatus(message) {
var status = document.getElementById("status");
status.innerHTML = message;
};
function refreshBalance() {
var meta = MetaCoin.deployed();
meta.getBalance.call(account, {from: account}).then(function(value) {
var balance_element = document.getElementById("balance");
balance_element.innerHTML = value.valueOf();
}).catch(function(e) {
console.log(e);
setStatus("Error getting balance; see log.");
});
};
function calcPremium() {
var premium = parseInt(document.getElementById("benefit").value)/10000;
document.getElementById("monthlyPremium").innerHTML = " Monthly Premium: $"+premium.toFixed(2);
};
function sendCoin() {
var meta = MetaCoin.deployed();
var amount = parseInt(document.getElementById("monthlyPremium").value);
var receiver = document.getElementById("receiver").value;
setStatus("Initiating transaction... (please wait)");
meta.sendCoin(receiver, amount, {from: account}).then(function() {
setStatus("Transaction complete!");
refreshBalance();
}).catch(function(e) {
console.log(e);
setStatus("Error sending coin; see log.");
});
};
window.onload = function() {
web3.eth.getAccounts(function(err, accs) {
if (err != null) {
alert("There was an error fetching your accounts.");
return;
}
if (accs.length == 0) {
alert("Couldn't get any accounts! Make sure your Ethereum client is configured correctly.");
return;
}
accounts = accs;
account = accounts[0];
refreshBalance();
});
}
私はでHTMLファイルを開くことができますよChromeブラウザ、MetaMaskプラグインが有効です。しかし、web3のエラーのために、何らかの形で契約と対話できないようです。正確なメッセージはこの投稿の件名です。
ご協力いただきありがとうございます。
ありがとう、@Ranadip Dutta!私はあなたが示したように変更を加え、$が定義されていないというエラーメッセージが出ます。そこで、$を削除して、ページにエラーがなくなりました。したがって、問題のコード行は次のようになります。 '(ウィンドウ).load function(){ ...' –
これは実際には.load関数で発生します。それを渡すには複数の方法があります。とにかく、それがうまくいくならば十分です。 :) –