Stabi: CSS und Adblocker

Ich verwende Firefox mit einer ganzen Reihe Extensions, unter anderem Noscript und Adblock Plus.

Mir geht es um das Verständnis des Vorgangs. Deshalb frage ich hier.

Wenn ich die folgende Seite aufrufe

http://home.arcor.de/stabil_baukasten_modelle/walther/andere/andere.html

geschieht folgendes :

Wenn ich adblock plus aktiviert habe, erscheint nur ein weißes Display.

Wenn ich adblock plus disabled habe, wird die Seite korrekt angezeigt.

Im Html-Code erkennt man einen Script-Aufruf, der von arcor.de eingefügt wurde.

  <title>Walther's andere Systeme</title><noscript>
</head><!-- --><body><!-- --><script src="http://static.plista.com/home.arcor.de_v1.js" type="text/javascript"></script>

  <a name="obex"></a></noscript><a name="oben"></a>

Der originale Html-Code der Seite ist

</head>
<body>
  <a name="obex"></a></noscript><a name="oben"></a>

Im Script wird nach adblock plus gesucht, speziell beim Firefox. Siehe Zeilen 290 bis 292 in static.plista.com/home.arcor.de_v1.js Hier der Code in besser lesbarer Form

      PLISTA.adblockdetect = function () {
        var a = document.createElement('a'),
            d = document.createElement('div'),
            result = false,
            style;
        try {
          d.className = 'plistaList';
          a.className = 'itemLinkPET';
          a.href = 'ht' + 'tp://click.plista.com/pets/abp';
          a.style.display = 'block';
          a.innerHTML = '&nbsp;';
          d.appendChild(a);
          document.body.appendChild(d);
          style = window.getComputedStyle(a, null);
          if (style.display === 'none') {
            result = true;
          } else if (style.MozBinding && style.MozBinding.match(/url\("about:(abp|sab)/)) {
            result = true;
          }
        } catch (e) {}
        if (d.parentNode) {
          d.parentNode.removeChild(d);
        }
        return result;
      };

Wenn ich die html-Datei<br/> http://home.arcor.de/stabil_baukasten_modelle/walther/andere/andere.html<br/> öffne und den Firebug(F12 key) im Firefox aktiviere and den <body> tag doppelklicke, dann werden einige Styles angezeigt, die in der Website nicht vorkommen:

body:not([id]) { cursor: auto !important; }
body { display: none !important; }

Das letzte css-Element macht die Anzeige weiß.

Der Originalcode für die beiden css-Elemente ist

data:text/css;charset=utf8,body%3Anot([id]) { cursor%3A auto !important } .__noscriptOpaqued__ { opacity%3A 1 !important%3B visibility%3A visible%3B filter%3A none !important } iframe.__noscriptOpaqued__ { display%3A block !important%3B } object.__noscriptOpaqued__%2C embed.__noscriptOpaqued__ { display%3A inline !important } .__noscriptJustOpaqued__ { opacity%3A 1 !important } .__noscriptScrolling__ { overflow%3A auto !important%3B min-width%3A 52px !important%3B min-height%3A 52px !important } .__noscriptNoScrolling__ { overflow%3A hidden !important } .__noscriptHidden__ { visibility%3A hidden !important } .__noscriptBlank__ { background-color%3A white !important%3B color%3A white !important%3B border-color%3A white !important%3B background-image%3A none !important }

und

data:text/css,.image > body{display%3A none !important%3B}%0A.teaserArea > body{display%3A none !important%3B}%0Abody{display%3A none !important%3B}

Wenn ich adblock plus disable und die Seite neu lade, fehlt das letzte css-Element im Firebug und die Seite wird korrekt dargestellt.

Nun meine Frage :

  • Gibt es Hinweise, wo diese data:text/css Elemente herkommen und wie sie wirken ?
  • Wie kann ich in einem Script, das in die Seite eingelinkt wird, den Aufruf von http://static.plista.com/home.arcor.de_v1.js verhindern ?
  • Wie kann ich das css-Element body { display: none !important; } vorrangig unwirksam machen.

Es gibt da auch noch ein Script arcor.js, das nach meiner Meinung nicht aufgerufen wurde :

<script type="text/javascript">
(function () {
        var file = "home.arcor.de_v1.js";
        var host = (("http:" === document.location.protocol) ?
                "http://static.plista.com/" :
                "https://plista.s3.amazonaws.com/");
        document.write(unescape("%3Cscript src='" + host + file +
                 "' type='text/javascript'%3E%3C/script%3E"));
}());
</script>

Ich danke schon jetzt im Voraus.

  1. Hallo,

    • Wie kann ich in einem Script, das in die Seite eingelinkt wird, den Aufruf von http://static.plista.com/home.arcor.de_v1.js verhindern ?

    Indem du bei Arcor einen Tarif buchst, der sich nicht durch Werbung finanziert.

    Gruß
    Kalk

  2. Hallo Stabi,

    aber mit dem Wikiartikel ‚CSS‘ hat deine Frage rein gar nichts zu tun.

    Bis demnächst
    Matthias

    --
    Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
    1. Ich habe es hier untergebracht, weil es mir als ein Verfahren vorkommt, mit dem man CSS-Elemente einbinden kann. Ich habe im Wiki nichts zu diesem speziellen Verfahren mit data:text/css.. gefunden.

      Dass das Problem selbst etwas komplexer ist, weiß ich. Mich interessiert eben, wer für das Element

      body { display: none !important; }
      

      verantwortlich ist und wie man es unwirksam macht.

      1. Hej stabi,

        Ich habe es hier untergebracht, weil es mir als ein Verfahren vorkommt, mit dem man CSS-Elemente einbinden kann. Ich habe im Wiki nichts zu diesem speziellen Verfahren mit data:text/css.. gefunden.

        Dass das Problem selbst etwas komplexer ist, weiß ich. Mich interessiert eben, wer für das Element

        body { display: none !important; }
        

        verantwortlich ist und wie man es unwirksam macht.

        Was ist mit

        html body { display: block !important; }
        

        Ich gebe zu: Habe keine Lust zu probieren, sollte aber gehen...

        Marc

    2. @@Matthias Apsel

      aber mit dem Wikiartikel ‚CSS‘ hat deine Frage rein gar nichts zu tun.

      Das Problem liegt in der „Fragen“-Funktion im Wiki, die das Betreff-Feld vorausfüllt. Fragende haben keine Veranlassung, das zu ändern; und so schwemmen desöfteren Postings mit unsinnigen Betreffs ins Forum.

      Die Schuld daran liegt nicht bei den Fragenden.

      LLAP 🖖

      --
      “You might believe there are benefits for the developer, but first of all, you should put those behind the interest of the user.” —Stefan Tilkov
      Selfcode: sh:) fo:} ch:? rl:) br:> n4:& va:| de:> zu:} fl:{ ss:| ls:# js:|
      1. Tach!

        Die Schuld daran liegt nicht bei den Fragenden.

        Natürlich nicht. Man kann von niemandem verlangen, seine Fragen selbst in bestmöglicher Qualität zu verfassen, wenn er eine ebensolche Antwort erwartet. Dieses soziale Problem hat allein die Technik zu lösen.

        dedlfix.

        1. @@dedlfix

          Die Schuld daran liegt nicht bei den Fragenden.

          Natürlich nicht.

          Wirklich nicht.

          Man kann von niemandem verlangen, seine Fragen selbst in bestmöglicher Qualität zu verfassen, wenn er eine ebensolche Antwort erwartet.

          Man kann von niemandem verlangen, sein Feature selbst in bestmöglicher Qualität zu implementieren, wenn er eine ebensolche Nutzung erwartet.

          Dieses soziale Problem hat allein die Technik zu lösen.

          Ist schlechtes interaction design und user interface design ein soziales Problem?

          LLAP 🖖

          --
          “You might believe there are benefits for the developer, but first of all, you should put those behind the interest of the user.” —Stefan Tilkov
          Selfcode: sh:) fo:} ch:? rl:) br:> n4:& va:| de:> zu:} fl:{ ss:| ls:# js:|
  3. Tach!

    • Gibt es Hinweise, wo diese data:text/css Elemente herkommen und wie sie wirken ?

    Wenn es die Entwicklertool des Browsers nicht in ihrem Inspektor anzeigen, dann hilft nur Code-Anschauen.

    • Wie kann ich in einem Script, das in die Seite eingelinkt wird, den Aufruf von http://static.plista.com/home.arcor.de_v1.js verhindern ?

    Hmm, wenn deins eher läuft als das andere, kannst du versuchen, das entsprechende Script-Element zu entfernen. Aber das ist vielleicht nicht im Rahmen deines Vertrags möglich. Im Browser kann man dem Adblocker auftragen, dieses Script nicht zu laden.

    • Wie kann ich das css-Element body { display: none !important; } vorrangig unwirksam machen.

    Dazu sind Kenntnisse der Spezifitätsregeln nötig (gibts im hiesigen Wiki nachzulesen). Du musst eine Regel definieren, die eine höhere Spezifität hat oder dieselbe und später notiert ist. Bei Inline-Style ist es schwieriger, aber nicht unmöglich. Da habe ich schon erfolgreiche Vorgehensweisen gefunden (Suchstichwörter: css override inline style).

    dedlfix.

    1. Inzwischen habe ich erfahren, dass die CSS-Elemente in den data:text/css-Texten von Plugins meines Firefox stammen. Der erste Text stammt aus Noscript, der zweite von Adblock Plus.

      Im Forum von Adblock Plus konnte man einen Fehler in der Easylist finden.

      Es wäre vielleicht hilfreich, die Möglichkeiten von data:text/css-Texten auch in den Selfhtml-Wikis zu erklären.

      Vielen Dank für Ihre Hilfe

      1. Hallo Stabi,

        Es wäre vielleicht hilfreich, die Möglichkeiten von data:text/css-Texten auch in den Selfhtml-Wikis zu erklären.

        Das Prinzip eines Wikis ist, dass jeder daran mitarbeiten kann.

        Bis demnächst
        Matthias

        --
        Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
      2. Hi,

        Es wäre vielleicht hilfreich, die Möglichkeiten von data:text/css-Texten auch in den Selfhtml-Wikis zu erklären.

        Gibt's im Wiki denn keine Erklärung zu data-URLs?

        cu,
        Andreas a/k/a MudGuard

        1. Hallo MudGuard,

          Gibt's im Wiki denn keine Erklärung zu data-URLs?

          Doch. Aber scheinbar nicht gut genug quer-verlinkt.

          LG,
          CK

          1. Servus!

            Hallo MudGuard,

            Gibt's im Wiki denn keine Erklärung zu data-URLs?

            Doch. Aber scheinbar nicht gut genug quer-verlinkt.

            Hat jetzt einen eigenen Glossar-Artikel: Data-URL

            Bitte verbessern!

            Herzliche Grüße

            Matthias Scharwies

            --
            Es gibt viel zu tun - packen wir's an: ToDo-Liste gewünschte Seiten