From fb0de0cc9cfcd2a17679b2826ddce5d0488f6036 Mon Sep 17 00:00:00 2001 From: Raymond Hill Date: Wed, 15 Dec 2021 09:08:04 -0500 Subject: [PATCH] Wait for placeholders to be present Related issue: - https://www.reddit.com/r/uBlockOrigin/comments/rgxlda/adblock_detected/ Related discussion: - https://github.com/uBlockOrigin/uAssets/commit/137070f2265dfe5a499010d49ef5acba4c074c3d#commitcomment-61964299 --- .../googlesyndication_adsbygoogle.js | 40 ++++++++++++------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/src/web_accessible_resources/googlesyndication_adsbygoogle.js b/src/web_accessible_resources/googlesyndication_adsbygoogle.js index b0173e90e..8c1d7fd61 100644 --- a/src/web_accessible_resources/googlesyndication_adsbygoogle.js +++ b/src/web_accessible_resources/googlesyndication_adsbygoogle.js @@ -21,22 +21,32 @@ (function() { 'use strict'; - window.adsbygoogle = { - loaded: true, - push: function() { + const init = ( ) => { + window.adsbygoogle = { + loaded: true, + push: function() { + } + }; + const phs = document.querySelectorAll('.adsbygoogle'); + const css = 'height:1px!important;max-height:1px!important;max-width:1px!important;width:1px!important;'; + for ( let i = 0; i < phs.length; i++ ) { + const id = `aswift_${i}`; + if ( document.querySelector(`iframe#${id}`) !== null ) { continue; } + const fr = document.createElement('iframe'); + fr.id = id; + fr.style = css; + const cfr = document.createElement('iframe'); + cfr.id = `google_ads_frame${i}`; + fr.appendChild(cfr); + phs[i].appendChild(fr); } }; - const phs = document.querySelectorAll('.adsbygoogle'); - const css = 'height:1px!important;max-height:1px!important;max-width:1px!important;width:1px!important;'; - for ( let i = 0; i < phs.length; i++ ) { - const id = `aswift_${i}`; - if ( document.querySelector(`iframe#${id}`) !== null ) { continue; } - const fr = document.createElement('iframe'); - fr.id = id; - fr.style = css; - const cfr = document.createElement('iframe'); - cfr.id = `google_ads_frame${i}`; - fr.appendChild(cfr); - phs[i].appendChild(fr); + if ( + document.querySelectorAll('.adsbygoogle').length === 0 && + document.readyState === 'loading' + ) { + window.addEventListener('DOMContentLoaded', init, { once: true }); + } else { + init(); } })();