Вот фрагмент, который обрабатывает 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
Спасибо за уделенное время!