如何在Node.js中使用document.getElementById()

时间:2018-09-10 11:25:22

标签: javascript node.js document getelementbyid dom-node

我正在尝试使用nodejs从js文件中的html文件中按id获取元素。 我收到“未定义文档ID”错误,因为默认情况下节点不提供文档对象模型。

那么我如何在Node.js中使用 document.getElementById()

谢谢!

2 个答案:

答案 0 :(得分:1)

使用JSDOM npm软件包:

jsdom是许多Web标准(特别是WHATWG DOM和HTML标准)的纯JavaScript实现,可与Node.js一起使用。通常,该项目的目标是模拟Web浏览器的足够一部分,以用于测试和抓取实际的Web应用程序。 https://github.com/jsdom/jsdom

答案 1 :(得分:1)

如果您想在同一台服务器中解析文件,则可能应该使用某些this选项,因为nodejs只是一个JavaScript实现,没有windowdocument对象,参见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)

  })();