在做JS逆向时常常会遇到需要模拟浏览器环境的情况,比如需要获取浏览器的location、document对象等。
当然,如果只是类似获取 location 对象中的某个值的话,我们可以直接在浏览器端将参数值都复制过来。
但是,如果需要对 document 进行操作那么就无能为力了,此时就需要使用到一个 NodeJS 包:jsdom。
jsdom 是一个 NodeJS 包,它可以在 NodeJS 环境中模拟浏览器环境,包括创建一个 window 对象、document 对象等。
使用 jsdom 包,我们可以创建一个虚拟的浏览器环境,然后在该环境中执行 JS 代码,从而实现对 document 对象的操作。
安装
npm install jsdom使用
    const { JSDOM } = require('jsdom');
    const dom = new JSDOM('<!DOCTYPE html><html><body></body></html>');
    const window = dom.window;
    const document = window.document;
    // 执行 JS 代码
    const script = document.createElement('script');
    script.textContent = `
        document.body.innerHTML = 'Hello, World!';
    `;
    document.body.appendChild(script);
    console.log(document.body.innerHTML);
    // 输出:Hello, World!  