fix: observer problems
This commit is contained in:
parent
9feb177880
commit
77be10b750
@ -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"),
|
@ -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,
|
|
||||||
//...
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user