-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathupdateMeta.js
23 lines (21 loc) · 962 Bytes
/
updateMeta.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import mapping from './mapping';
function updateMeta(documentTitle) {
const previousPage = sessionStorage.getItem('documentTitle') || null;
if (previousPage !== 'index') {
const previousPageMetas = document.querySelectorAll(`meta[page="${previousPage}"]`) || [];
previousPageMetas.forEach(() => {
document.querySelector(`meta[page="${previousPage}"]`).parentNode.removeChild(document.querySelector(`meta[page="${previousPage}"]`));
});
}
const currentMetas = mapping[documentTitle] || [];
currentMetas.forEach((currentMeta) => {
const metaObj = document.createElement('meta');
Object.keys(currentMeta).forEach((currentMetaKey) => {
metaObj.setAttribute(currentMetaKey, currentMeta[currentMetaKey]);
metaObj.setAttribute('page', documentTitle);
});
document.getElementsByTagName('head')[0].appendChild(metaObj);
});
sessionStorage.setItem('documentTitle', documentTitle);
}
export default updateMeta;