如何在所有浏览器中连接智能合约?

How Can Connect Smart Contract In All Browsers?

我为 Ether 智能合约创建了前端网页。我之前使用过 Web3 库和 Meta Mask。现在我的网页是工作。但是,当我在主机上上传网站以供他人使用时,当我在其他系统和其他不支持 Used/Installed Meta Mask 扩展的浏览器中测试我的网页时,我遇到了错误。 请有人帮助我如何将网页连接到合同?

我之前使用此代码进行连接:

     <script >
            if (typeof window.ethereum !== 'undefined') 
            {
                console.log('MetaMask is installed!');
            }else{
                console.log('MetaMask not installed!');
                alert("Please install Metamsk wallet first, then try again");
                 }                     
            const accounts = ethereum.request({ method: 'eth_requestAccounts' });
            const account = accounts[0];
            const showAccount = document.querySelector('.showAccount');
                

            var contract;
            const accounts = ethereum.request({ method: 'eth_requestAccounts' });
            const account = accountsH[0];
            const showAccount = document.querySelector('.showAccount');
                web3 = new Web3(web3.currentProvider);
                var address = "0x6246.../* My Contract Address */...5E7a";
                var abi =[/* My ABI */];
                        contract = new web3.eth.Contract(abi, address);
     </script>

并且有效。但在 Meta Mask 未激活或未安装的其他浏览器中,我看到错误。 我使用 Html 和 Java 脚本进行前端编程。

我找到了问题的答案。 我必须使用 infura

check this page

并首先在现场创建项目。并获取 ID

使用此代码

web3 = new Web3(new Web3.providers.HttpProvider("https://ropsten.infura.io/v3/3c6/*Your Own ID*/01753"));