引入require后document.getElementById的innerHTML无法正常工作
问题排查与修复方案
嘿,我一眼就发现问题所在了!你这段代码里混入了Node.js专属的模块调用,而浏览器环境根本不支持这些内容,所以运行时会直接报错,导致后面修改文本的代码也没法执行。
问题根源
require('net')和require('sleep')是Node.js特有的模块加载语法,浏览器里没有全局的require函数,而且net、sleep这类模块也只能在Node.js运行环境(比如服务器端、本地Node命令行)里使用,浏览器完全不认识它们。
修复后的可运行代码
把那些Node.js相关的代码删掉,只保留浏览器能识别的部分就可以正常工作了:
<!DOCTYPE html> <html> <body> <h2>Use JavaScript to Change Text</h2> <p>This example writes "Hello JavaScript!" into an HTML element with id="demo":</p> <p id="demo"></p> <script> var element = document.getElementById("demo"); element.innerHTML = "Hello JavaScript!"; </script> </body> </html>
额外说明
如果你的实际需求是既要用到Node.js的功能,又要操作浏览器页面,那得换个思路:比如用前后端分离的方式,Node.js写后端接口,前端页面通过AJAX/fetch调用接口;或者使用Electron这类框架(它同时支持Node.js和浏览器API)。但如果只是单纯想实现修改浏览器页面文本的功能,上面的修复代码就完全够用啦。
内容的提问来源于stack exchange,提问作者dzuliani
相关产品推荐
相关产品推荐

