neweb
Version:
[![NPM version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Dependency Status][daviddm-image]][daviddm-url] [![Coverage percentage][coveralls-image]][coveralls-url] [ • 1.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
class ClientPageMetaManager {
update(page) {
document.title = page.title || "";
const head = document.getElementsByTagName("head")[0];
let isStartRemove = false;
let metaEndNode;
for (const child of head.childNodes) {
if (isStartRemove) {
if (child.nodeType === 8 && child.nodeValue === "__page_meta_end__") {
metaEndNode = child;
break;
}
head.removeChild(child);
continue;
}
if (child.nodeType === 8 && child.nodeValue === "__page_meta_start__") {
isStartRemove = true;
}
}
if (page.meta && page.meta.length > 0 && metaEndNode) {
for (const meta of page.meta) {
const metaEl = document.createElement("meta");
metaEl.name = meta.name;
metaEl.content = meta.content;
head.insertBefore(metaEl, metaEndNode);
}
}
}
}
exports.default = ClientPageMetaManager;