我正在尝试使用nodejs从js文件中的html文件中按id获取元素。 我收到“未定义文档ID”错误,因为默认情况下节点不提供文档对象模型。
那么我如何在Node.js中使用 document.getElementById()?
谢谢!
答案 0 :(得分:1)
使用JSDOM npm软件包:
jsdom是许多Web标准(特别是WHATWG DOM和HTML标准)的纯JavaScript实现,可与Node.js一起使用。通常,该项目的目标是模拟Web浏览器的足够一部分,以用于测试和抓取实际的Web应用程序。 https://github.com/jsdom/jsdom
答案 1 :(得分:1)
如果您想在同一台服务器中解析文件,则可能应该使用某些this选项,因为nodejs只是一个JavaScript实现,没有window
或document
对象,参见this。但要确切回答您的问题:
如何在nodejs中使用 document.getElementById()?
您可以使用Puppeteer
Puppeteer是一个节点库,它提供了高级API来控制 通过DevTools协议的无头Chrome或Chromium。也可以是 配置为使用完整(无头)的Chrome或Chromium。
这是一个基本示例:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
page = await browser.newPage();
await page.goto('http://example.com/some.html', {waitUntil: 'load'});
const newPage = await page.evaluate(() => {
return document.getElementById("idexample").innerHTML;
});
console.log(newPage)
})();