Как использовать интерфейс документа для локального файла html, не открывая его в браузере? - PullRequest
0 голосов
/ 16 июня 2020

Вот фрагмент, который обрабатывает HTML https://jsfiddle.net/c3tkpsrq/

Он использует интерфейс document:

const dom = document.body;

Есть ли способ использовать код из сниппета для локального файла HTML? Кажется, я не могу сразу использовать интерфейсы WebAPI, потому что файл не открывается в браузере.

Для локальных файлов я использую Node.js и fs. Ниже - часть кода, который открывает локальный файл html:

fs.readdir('output/', (err, files) => {
    files.forEach(file => {
        if (path.extname(file) === '.html') {
            fs.readFile('output/' + file, 'utf8', function(err, data) {});
//here I'd like to use the same logic from the snippet above//
        }
    })
})

UPD: Самое близкое, что я мог найти, - это попытаться использовать jsdom https://www.npmjs.com/package/jsdom

И вместо оригинального

const dom = document.body;

Я использовал

const dom = (new JSDOM(data)).window.document.body;

Но код все равно не запускается, выдает ошибку:

if (node instanceof HTMLHeadingElement) {
                      ^

ReferenceError: HTMLHeadingElement is not defined
    at C:\folder\r2.js:47:23
    at Array.forEach (<anonymous>)
    at C:\folder\r2.js:46:42
←[90m    at FSReqCallback.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:63:3)←[39m

Спасибо за уделенное время!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...