gpt4 book ai didi

javascript - 在 nodejs 中使用 Document 对象

转载 作者:行者123 更新时间:2023-11-30 15:54:46 24 4
gpt4 key购买 nike

我还是 javascript 和 node.js 的新手,正在尝试完成一些事情,但我遇到了错误 ReferenceError: Document not defined

在单独的文件中给出以下代码:

索引.html:

<!DOCTYPE html>
<html>
<head>
<title>My Test Website</title>
<script type="text/javascript" src="script.js"></script>
<link rel="stylesheet" href="style.css">
</head>
<body>
<p id="para1"> Some text here</p>
</body>
</html>

和 script.js:

function getParagraphContents() {
var paragraph = document.getElementById("para1");
var temp = paragraph.textContent;
console.log(temp);
}

所以我的问题是我希望能够从命令行运行命令 node script.js 但不断收到错误消息。我一直在阅读其他答案和文档,但似乎没有什么是正确的答案。有什么建议么?附言我在 mac osx 上使用终端并正确安装了 Node 和 npm。

谢谢。

最佳答案

script.js 是一个设计用于在浏览器中运行的脚本,而不是在 node.js 中。它旨在对当前网页进行操作,并使用 document 对象来访问该页面。

node.js 执行环境与浏览器不同。例如,没有像浏览器中那样的“当前页面”的概念,因此也没有像浏览器中那样的全局 documentwindow 对象.

所以,这一切都解释了为什么尝试运行 node script.js 不起作用。没有全局 document 对象,因此您的脚本会迅速生成错误并退出。


如果您只是不真正理解在浏览器中运行脚本与在 node.js 环境中运行脚本之间的区别,那么我们无法从您的问题中真正分辨出来,这就是您需要解释的全部内容,或者您​​是否真的了解想在 node.js 中操作 HTML 文档?

可以在 node.js 中操作 HTML 页面。通常的做法是获取像 jsdom 这样的 HTML 解析库。然后,您可以使用该库加载一些 HTML 页面,它将创建一个模拟的浏览器 DOM,并使诸如 document 对象之类的东西对您可用,这样您就可以在 HTML 文档上执行类似浏览器的脚本。

关于javascript - 在 nodejs 中使用 Document 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38748996/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com