部署Web NFC示例至000webhost时遇ChromeSamples未定义错误,如何修复?
修复「Uncaught ReferenceError: ChromeSamples is not defined」错误
这个错误的原因很直接:ChromeSamples是Chrome官方示例项目里的自定义辅助工具库,你部署自己的网站时没有引入这个库,导致代码调用它的方法时找不到定义。
下面给两种可行的修复方案:
方案一:引入ChromeSamples脚本
- 从Chrome的Web NFC示例项目中找到
ChromeSamples.js文件,下载到你自己的项目目录里。 - 在你的
index.html文件中,在使用ChromeSamples的代码之前添加脚本引入:
注意要根据文件的实际存放路径调整<script src="ChromeSamples.js"></script>src的值。
方案二:替换ChromeSamples方法,自行实现功能
如果不想依赖外部库,可以直接替换掉ChromeSamples.log和ChromeSamples.setStatus的调用,自己实现简单的信息输出和状态提示功能:
- 修改原有的脚本代码为:
// 自定义log函数,控制台输出+页面展示 function log(message) { console.log(message); const logEl = document.createElement('div'); logEl.textContent = message; document.body.appendChild(logEl); } // 自定义setStatus函数,显示状态提示 function setStatus(message) { let statusEl = document.getElementById('status'); if (!statusEl) { statusEl = document.createElement('div'); statusEl.id = 'status'; statusEl.style.color = '#dc3545'; statusEl.style.margin = '1rem 0'; document.body.appendChild(statusEl); } statusEl.textContent = message; } // 替换原有的调用逻辑 if (!("NDEFReader" in window)) { setStatus("Web NFC不可用,请使用安卓版Chrome浏览器。"); } - 这段代码会自己创建元素来展示日志和状态,不需要依赖任何外部库。
内容的提问来源于stack exchange,提问作者Tedis Rozenfelds
相关产品推荐
相关产品推荐

