MetaMask does not inject window.ethereum: Uncaught (in promise) TypeError: Cannot read property #39;request#39; of undefined(MetaMASK不注入窗口。以太:未捕获(承诺中)类型错误:无法读取未定义的属性#39;请求#39;)
问题描述
首先,让我指出这是一个浏览器内项目,因此我只能使用
<script src="https://cdn.jsdelivr.net/gh/ethereum/web3.js/dist/web3.min.js"></script>
因此,几个月前,我制作了一个DAPP,尽管我从未设置过提供者,但它工作得很好,所以我猜它使用了MetaMask提供的那些。
但是,我使用的指南here唯一的问题是以下代码
数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">
var account_global, connected = false;
async function connect() {
if (!connected) {
var wei;
const accounts = await window.ethereum.request({ method: 'eth_requestAccounts' }); // Waits for connection to MetaMask.
account_global = accounts[0];
web3.eth.defaultAccount = account_global;
console.log(account_global.toString() + " connected!");
connected = true;
console.log(account_global);
}
}
connect();
此代码用于在元掩码用户批准我的DAPP上的元掩码后输出元掩码用户的地址,但我收到错误
Uncaught (in promise) TypeError: Cannot read property 'request' of undefined
错误只是说,如果我必须添加提供程序,并且所有的目标都是使用来自元掩码的提供程序,并允许连接到元掩码,其余的函数,如Transfer或其他我知道如何处理它们的函数,我的问题似乎只是在我尝试加载页面时出现。
我没有可以使用的以太网节点,也不打算使用NodeJS,只有一个html文件显示MetamASK地址,因此使用浏览器中的Web3js。
我希望只是我没有意识到一些简单的事情,因为我似乎找不到我现在不能使用web3js的原因。
推荐答案
解开谜团,看起来就像显示的错误代码
Uncaught (in promise) TypeError: Cannot read property 'request' of undefined
真正的意思是window.ethereum
没有定义,所以没有确切的原因MetaMask不会注入以太,注意到在阅读了Metamask和Web3js文档后,我的问题与他们的代码无关,实际上我最终将使用此答案中所示的代码。
https://ethereum.stackexchange.com/a/78987
这个问题看起来不管浏览器MetamASK都不会注入,所以我在多个通常需要MetamASK连接的网站和其他正常的网站(如google.com)上进行了测试,令我惊讶的是,除了我自己的测试网站外,每个网站都会有MetamAsk注入Etherum,所以这意味着我的网站被诅咒了什么的,或者只是因为Metamask不会注入到非托管网站上(只是在我的Destop上测试文件),而是在它确实注入的实际主机上进行了测试,我的测试在这些网站上运行。
结论
MetamASK需要普通主机才能注入,它不会注入您自己的工作站上打开的随机文件。
这篇关于MetaMASK不注入窗口。以太:未捕获(承诺中)类型错误:无法读取未定义的属性';请求';的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:MetaMASK不注入窗口。以太:未捕获(承诺中)类型错误:无法读取未定义的属性';请求';
基础教程推荐
- 动态更新多个选择框 2022-01-01
- 在for循环中使用setTimeout 2022-01-01
- 有没有办法使用OpenLayers更改OpenStreetMap中某些要素 2022-09-06
- 悬停时滑动输入并停留几秒钟 2022-01-01
- 我什么时候应该在导入时使用方括号 2022-01-01
- 角度Apollo设置WatchQuery结果为可用变量 2022-01-01
- 当用户滚动离开时如何暂停 youtube 嵌入 2022-01-01
- 响应更改 div 大小保持纵横比 2022-01-01
- Karma-Jasmine:如何正确监视 Modal? 2022-01-01
- 在 JS 中获取客户端时区(不是 GMT 偏移量) 2022-01-01