fix: observer problems

This commit is contained in:
wanhose 2020-05-17 14:14:45 +02:00
parent 9feb177880
commit 77be10b750
2 changed files with 31 additions and 40 deletions

View File

@ -1,4 +1,4 @@
export const notRemovable = Array.from([ export const getNotRemovableElements = (document) => Array.from([
// PLO // PLO
...document.getElementsByClassName("plu-no-scroll"), ...document.getElementsByClassName("plu-no-scroll"),
// Quantcast // Quantcast
@ -9,7 +9,7 @@ export const notRemovable = Array.from([
...document.getElementsByClassName("noScroll"), ...document.getElementsByClassName("noScroll"),
]); ]);
export const removable = Array.from([ export const getRemovableElements = (document) => Array.from([
// BLQ // BLQ
document.getElementById("blq-global"), document.getElementById("blq-global"),
// CC // CC
@ -55,6 +55,9 @@ export const removable = Array.from([
document.getElementById("ensNotifyBanner"), document.getElementById("ensNotifyBanner"),
// ePrivacy // ePrivacy
document.getElementById("ePrivacyDisclaimer"), document.getElementById("ePrivacyDisclaimer"),
// Evidon
document.getElementById("_evidon_banner"),
...document.getElementsByClassName("evidon-banner"),
// Facebook // Facebook
...document.getElementsByClassName("fbPageBanner"), ...document.getElementsByClassName("fbPageBanner"),
// Google // Google
@ -90,11 +93,13 @@ export const removable = Array.from([
// Miscellaneous // Miscellaneous
...document.getElementsByClassName("_1ouSF3xnwUjIOquxopuxSZ"), ...document.getElementsByClassName("_1ouSF3xnwUjIOquxopuxSZ"),
...document.getElementsByClassName("announcements"), ...document.getElementsByClassName("announcements"),
...document.getElementsByClassName("branch-journeys-top"),
...document.getElementsByClassName("cc-cookies"), ...document.getElementsByClassName("cc-cookies"),
document.getElementById("cconsent-bar"), document.getElementById("cconsent-bar"),
document.getElementById("cookie-consent-banner"), document.getElementById("cookie-consent-banner"),
...document.getElementsByClassName("cookiedisclaimer"), ...document.getElementsByClassName("cookiedisclaimer"),
...document.getElementsByClassName("cookie_box"), ...document.getElementsByClassName("cookie_box"),
...document.getElementsByClassName("cookie-container"),
document.getElementById("cookie-div"), document.getElementById("cookie-div"),
document.getElementById("cookie-law-info-bar"), document.getElementById("cookie-law-info-bar"),
document.getElementById("cookie-law-info-again"), document.getElementById("cookie-law-info-again"),
@ -113,6 +118,7 @@ export const removable = Array.from([
...document.getElementsByClassName("cookiesms"), ...document.getElementsByClassName("cookiesms"),
document.getElementById("cp-dialog"), document.getElementById("cp-dialog"),
document.getElementById("cp-overlay"), document.getElementById("cp-overlay"),
document.getElementById("gdpr-banner"),
...document.getElementsByClassName("fot-fixd"), ...document.getElementsByClassName("fot-fixd"),
document.getElementById("global-cookie-message"), document.getElementById("global-cookie-message"),
...document.getElementsByClassName("grp-header__cookiedisclaimer"), ...document.getElementsByClassName("grp-header__cookiedisclaimer"),
@ -120,7 +126,8 @@ export const removable = Array.from([
...document.getElementsByClassName("js-cookies"), ...document.getElementsByClassName("js-cookies"),
document.getElementById("js-gdpr-consent-banner"), document.getElementById("js-gdpr-consent-banner"),
...document.getElementsByClassName("m-privacy-consent"), ...document.getElementsByClassName("m-privacy-consent"),
...document.getElementsByClassName("nd t fk vz ai wa wb wc wd we wf wg wh wi wj wk wl wm wn wo wp wq wr li ws wt wu wv ww wx wy wz xa xb xc xd"), ...document.getElementsByClassName("modal-backdrop"),
document.getElementById("modal-consent"),
...document.getElementsByClassName("pam"), ...document.getElementsByClassName("pam"),
document.getElementById("privacy-consent"), document.getElementById("privacy-consent"),
document.getElementById("scms-cc-cookie-bar"), document.getElementById("scms-cc-cookie-bar"),

View File

@ -1,56 +1,40 @@
import { notRemovable, removable } from './elements.js'; import { getNotRemovableElements, getRemovableElements } from './helpers.js';
// Observer // Observer
const observer = new MutationObserver((mutations, observer) => { const observer = new MutationObserver((mutations, observer) => {
mutations.forEach(mutation => { mutations.forEach(() => {
if (mutation.type === 'childList') { observer.disconnect();
observer.disconnect(); doMagic();
doMagic(); observe();
observe();
}
}); });
}); });
// Remover // Remover
const doMagic = () => { const doMagic = () => {
// Remove irritating styles // Getting elements
notRemovable.forEach(element => { const notRemovable = getNotRemovableElements(document)
// PLO .filter(element => !!element);
element.classList.remove("plu-no-scroll"); const removable = getRemovableElements(document)
// Quantcast .filter(element => !!element);
element.classList.remove("qc-cmp-ui-showing");
// Miscellaneous
element.classList.remove("_2LLC6zrbk-vsnF0seit6vi");
element.classList.remove("gdpr");
element.classList.remove("noScroll");
});
// Remove irritating elements // Remove irritating all removable elements
removable.forEach(element => { removable.forEach(element => {
if (!!element) { const exists =
const exists = document.getElementById(element.id)
document.getElementById(element.id) || document.getElementsByName(element.name).length > 0
|| document.getElementsByName(element.name).length > 0 || document.getElementsByClassName(element.className).length > 0;
|| document.getElementsByClassName(element.className).length > 0;
if (exists) element.remove(); if (exists) element.remove();
}; });
});
// Fix stucked pages // Remove irritating styles from elements not removable
if (document.body.style) { notRemovable.forEach(element => element.style.setProperty('overflow', 'unset', 'important'));
document.body.style.removeProperty("overflow");
document.body.style.removeProperty("overflowX");
document.body.style.removeProperty("overflowY");
};
}; };
// Observer starts observe when call this function // Observer starts observe when call this function
const observe = () => { const observe = () => {
observer.observe(document.body, { observer.observe(document.body, {
childList: true, attributes: true,
subtree: true,
//...
}); });
}; };