getComputedStyle gibt nicht den tatsächlichen Wert aus

  • 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!


    Code
    1. var addblock=document.createElement('iframe');
    2. addblock.id='AD13nXXLJoh';
    3. addblock.style.display='none';
    4. addblock.src="https://example.com/ad";
    5. addblock.width="320";
    6. addblock.height="50";
    7. document.body.appendChild(addblock);
  • Ohne die If abfragen bekomme ich display: "none" angezeigt.

    Setze ich den Iframe von none auf "none !important" zeigt er mir "inline" an.

    Irgendwie komisch. Meinst du das ?

  • Nein, das meine ich nicht. Aber komisch ist das wirklich. Vielen Dank für deine Hilfe!


    Ich glaube die Schlüsselfrage ist, ob getComputedStyle injected stylesheets erkennt. Weiter komme ich aber leider nicht...