您的位置:首页 > 新闻 > 热点要闻 > VSCode 报错 之 运行 js 文件报错 ReferenceError: document is not defined

VSCode 报错 之 运行 js 文件报错 ReferenceError: document is not defined

2025/1/15 12:19:16 来源:https://blog.csdn.net/Orange_hhh/article/details/139287895  浏览:    关键词:VSCode 报错 之 运行 js 文件报错 ReferenceError: document is not defined

1. 背景

持续学习ing

2. 遇到的问题

在VSCode 右键 code runner js 文件报错 ReferenceError: document is not defined
eg:

// 为每个按钮添加点击事件监听器
document.querySelectorAll('button').forEach(function (button) {button.addEventListener('click', function () {// 获取当前按钮的data-phone和data-password属性值const phone = this.getAttribute('data-phone');const password = this.getAttribute('data-password');// 获取当前活动的标签页chrome.tabs.query({ active: true, currentWindow: true }, function (tabs) {// 在当前标签页中注入并执行脚本chrome.scripting.executeScript({target: { tabId: tabs[0].id },function: login,args: [0, phone, password]});});});

报错的提醒:
在这里插入图片描述

3. 问题的原因

  1. js 脚本的运行环境有浏览器环境和 Node.js 两种,根据 Node.js 官方网站的介绍,Node.js is a JavaScript runtime built on Chrome’s V8 JavaScript engine.
  2. 上述代码调用了 Document 类型提供的方法 document.querySelectorAll(‘button’).forEach(function (button),属于 DOM 的应用,但是对于 DOM 和 BOM 的操作只有在浏览器环境下才能进行,
  3. 在 VSCode 这里我用插件 Code Runner 来运行 js 脚本的,Code Runner 的配置是 Node.js
    环境,如果操作 DOM 就会报错。

4. DOM 和 BOM区别参考文章

https://blog.csdn.net/qq_52736131/article/details/123563321

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com