Hallo liebes Forum,
ich bin neu hier und hoffe auf eure Hilfe. Das Internet habe ich durchsucht, finde jedoch keine Lösung für mein Problem. Auf meiner Website möchte ich einen Adblock-Detector implementieren, jedoch selber geschrieben, damit keine unnötigen Cookies gesetzt werden.
Hierfür habe ich eine "ads.js" gebastelt, die lediglich ein iframe auf die Seite setzt. Jetzt zum eigentlichen Problem:
Ich benutze den Befehl getComputedStyle um die CSS-Werte des iframes auszulesen. Die meisten Adblocker setzen nämlich die iframes auf "none !important", damit sie einfach nicht sichtbar sind. In der "Entwicklerumgebung" bei Chrome steht dann "injected stylesheet".
Leider bekomme ich in die Console nur meine übergebenen display-parameter übergeben. Wie kann ich das Lösen, bzw. wo ist der Fehler?
Vielen Dank für die Hilfe!
<script src="https://example.com/wordpress/wp-content/themes/twentyeleven_child/ads.js" type="text/javascript"></script>
<script type="text/javascript">
window.addEventListener('load', (event) => {
console.log('Seite ist geladen');
if( document.getElementById('AD13nXXLJoh') ){
console.log('Test1 negativ');
} else {
console.log('Laden des javascripts unterbunden');
}
var element = document.getElementById('AD13nXXLJoh');
var style = window.getComputedStyle(element, null);
var ausgabe=style.getPropertyValue('display');
console.log(ausgabe);
var style2 =
if (style.display === "none !important" || style.visibility === "hidden")
{
console.log('Das Frame ist unsichtbar');
} else{
console.log('Test2 negativ');
}
if (element.naturalWidth !== "undefined" && element.naturalWidth === 0)
{
console.log('Das Frame wurde nicht korrekt geladen!');
} else{
console.log('Test3 negativ');
}
});
</script>
Alles anzeigen