Мне нужно преобразовать часть веб-сайта в строку html со встроенным CSS, сгенерированным из getComputedStyle.
Идея состоит в том, чтобы преобразовать все вложенные и плоские элементы в строку со встроенными стилями. Вывод может быть вставлен в. html или онлайн-редактор кода и будет выглядеть так же. Он приближается, я уже час с ним возился.
Вот мой код:
function loopThroughRoots(root) {
let htmlString = "";
let temp = root;
console.log(root.tagName);
temp.setAttribute(
"style",
window.getComputedStyle(root).cssText
);
if (temp.children.length > 0) {
console.log("has children, looping");
for (let i = 0; i < temp.children.length; i++) {
htmlString += loopThroughRoots(temp.children[i]);
}
} else {
console.log("no children, setting value");
htmlString = temp.outerHTML;
}
return htmlString;
}
var root = document.querySelector("#markdown");
console.log(loopThroughRoots(root));
Но, похоже, он пропускает все элементы, у которых есть дети , Эти родительские теги (и их стили) не отображаются в окончательной строке.
Что можно изменить, чтобы эти родительские элементы также были включены? Или как еще я могу это сделать?
Вот пример:
Пример пера