Woody: Wie herausfinden ob Website Strg+c unterdrückt?

Ich kann bei manchen Websites Text nicht in die Zwischenlage kopieren. Wie findet ich am einfachsten heraus ob das per JavaScript unterdrückt wird?

  1. JavaScript blockieren und noch mal versuchen.

    1. Hallo MrMurphy1,

      JavaScript blockieren und noch mal versuchen.

      Es steht (leider) zu befürchten, dass Seiten, die ctrl+c blockieren, ohne JavaScript überhaupt nicht funktionieren.

      Bis demnächst
      Matthias

      --
      Pantoffeltierchen haben keine Hobbys.
      ¯\_(ツ)_/¯
      1. Das blockierte Seiten überhaupt nichts anzeigen ist sehr unwahrscheinlich. Es geht nur darum ob JavaScript das Markieren / Kopieren verhindert. Danach kann es ja wieder zugelassen werden.

        1. Hallo,

          Das blockierte Seiten überhaupt nichts anzeigen ist sehr unwahrscheinlich.

          Ich hab mal ne zeitlang Javascripte generell geblockt. Es gab immer mal wieder Seiten, die deshalb einfach überhaupt nix anzeigten.

          Gruß
          Kalk

          1. Ich hab mal ne zeitlang Javascripte generell geblockt. Es gab immer mal wieder Seiten, die deshalb einfach überhaupt nix anzeigten.

            Ah. Da steht nichts. Muss man nicht wieder besuchen. Vielleicht dem Betreiber unter dem Subjekt "He! Wurde Ihre Seite gehackt?" einen Fehlerreport mit einem Bildschirmfoto schicken…

  2. Hallo Woody,

    hast Du mal ein Beispiel für eine solche Seite?

    Rolf

    --
    sumpsi - posui - clusi
    1. Z.B. hier: Photo-Shop Tutorial

      Möchte ich oben links auf der Seite das Wort Photoshop kopieren, geht das nur über das Menü Bearbeiten>Kopieren meines Browsers. Nicht über Strg+c.

      1. Hallo Woody,

        aaalso, auf der von Dir verlinkten Seite ist das kein Bug, das ist auch keine vorsätzliche Blockade von Copy. Neiiin, das ist ein Feature! Was ganz Tolles !1!!elf!!

        Im rechten Seitenblock gibt es diese Anzeige mit "Contents" und "Notebook". C aktiviert dort den Contents-Reiter. N den Notebook Reiter. Allerdings gibt sich der Autor nicht die Mühe, zu prüfen, ob ein Modifikator dabei ist. D.h. Shift-N, Alt-N, Ctrl-N, AltGr+N, Meta+N - wird alles akzeptiert.

        Wie habe ich das herausgefunden? Ich habe Chrome verwendet; im FF habe ich nicht herausgefunden, wie man die registrierten Eventhandler anzeigt.

        • Entwicklerwerkzeuge auf der Seite geöffnet
        • Ein Element gesucht, in dem Copy-geschützter Text steht (war bei mir das h1 Element)
        • im rechten Fenster die Event-Listener zum Element geöffnet (da wo "Styles", "Computed" etc steht)
        • a gugge da, es sind 5 keypress Handler und 5 keydown Handler, alle auf body registriert.
        • diese Listener der Reihe nach entfernt (Chrome hat eine praktische "Remove" Funktion)
        • Aha, der keydown Handler in Zeile 3 ist es.
        • Auf die Source-Referenz geklickt (course.bundle.min-ecc8089b.js:3)
        • Gekotzt
        • Unterm Source auf {} geklickt (pretty print)
        • ab Zeile 1007 steht nun
            var F = 78, $ = 67, J = 84, Q = "";
            if (w.bind("keydown", function(t) {
                if (!("INPUT" === t.target.tagName || "TEXTAREA" === t.target.tagName || e(t.target).attr("contenteditable") || e(t.target).closest("form").length > 0)) {
                    switch (t.keyCode) {
                    case J:
                        var o = t.ctrlKey || t.shiftKey || t.altKey || t.metaKey;
                        if (o)
                            return !0;
                        if (!e("html").hasClass("member"))
                            return !0;
                        I.trigger("theater.toggle"),
                        Q = "player-theater-mode";
                        break;
                    case F:
                        var r = e("#notes-tab");
                        r.length && r.click(),
                        Q = "N";
                        break;
                    case $:
                        var a = e("#toc-tab");
                        a.length && a.click(),
                        Q = "C";
                        break;
                    default:
                        return !0
                    }
                    return w.trigger("ga.event", {
                        action: "keypress",
                        label: Q,
                        value: x
                    }),
                    !1
                }
            }),
        
        • Aha, also eine jQuery Seite. .bind() ist eine der vielen Möglichkeiten, Eventlistener zu registrieren.
        • Der erste IF soll wohl den Handler-Code überspringen, wenn man in einem input, textarea, contenteditable oder einem Form-Element ist. Schneller Test: Ein Wort in der Suchzeile oben kann man kopieren. Yup!
        • Der keyCode wird geprüft. Zuerst gegen J. Was ist J??? Siehe oben: var J=84. Guck in die Ascii-Tabelle: T (oder drücke ALT und dann 84 im Nummernblock). Dann wird genauer geprüft: Ist im Event-Objekt der Schalter für Ctrl, Shift, Alt oder Meta gesetzt? Dann: adios. T wird nur ohne Modifikator interpretiert. Dann wird geprüft, ob das <html> Element die Klasse "member" trägt. Wenn nicht, adios. Wie dumm. Eine Klasse ist schnell manipuliert. T aktiviert den Theater-Modus. Aber nur für Member. Aha. Test: Klasse non-member in member geändert, T gedrückt -> Videofenster wird breit. Yup!
        • Nächste keyCode-Prüfung erfolgt gegen Variable F. F=78, Alt+78 ist N. Hier wird kein Modifikator geprüft, sondern blindlings ein Klick auf #notes-tab simuliert. Das gleiche gilt für den KeyCode in Variable $, also 67, also C. Blinder Klick auf #toc-tab.

        Angesichts der „ausgefeilten“ Nutzerbeschränkung des Theater Mode würde ich hier Hanlon's Razor anwenden wollen:

        Geh nicht von Böswilligkeit aus, wenn Dummheit genügt

        Statt im Browser-Menü rumzukrabbeln, kannst Du auf dieser Seite auch einfach die rechte Maustaste drücken und "Kopieren" auswählen.

        Rolf

        --
        sumpsi - posui - clusi
        1. Ganz herzlichen Dank für Deine Mühe und die spitzen Erklärung!

          Plus extra viel Sonnenschein über Deinem Wohnort 🔆

          1. @@Woody

            Ganz herzlichen Dank für Deine Mühe und die spitzen Erklärung!

            Ich hatte hier „spitze Erklärung“ gelesen und mir gedacht: Für spitze Erklärungen sind hier doch andere zuständig! 😆

            BTW, dem Hanlon’s Razor hab ich mal die Montagsausgabe draufgesetzt: Schreibe weder der Böswilligkeit noch der Dummheit zu, was durch Montag hinreichend erklärbar ist.

            LLAP 🖖

            --
            „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
            1. Hallo Gunnar,

              so, YYL about Hanlon's Razor?

              TIL soo much ABBR

              Rolf

              --
              sumpsi - posui - clusi
              1. @@Rolf B

                so, YYL about Hanlon's Razor?

                Das Prinzip kannte ich schon, aber nicht unter dem Namen.

                LLAP 🖖

                --
                „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
          2. Hallo Woody,

            Plus extra viel Sonnenschein über Deinem Wohnort

            danke, den gab es. Aber leider befand sich zwischen mir und der herrlich strahlenden Sonne eine etliche km dicke, inkontinente Wolkenschicht 😏

            Rolf

            --
            sumpsi - posui - clusi
            1. Aber leider befand sich zwischen mir und der herrlich strahlenden Sonne eine etliche km dicke, inkontinente Wolkenschicht

              Nun, andere hat die "inkontinente Wolkenschicht" gefreut.

        2. Gekotzt

          Was will man denn für Java-Script erwarten, wenn sich schon im HTML sowas findet:

          <script style = 'visibility : hidden'>
          
          1. Hi there,

            Was will man denn für Java-Script erwarten, wenn sich schon im HTML sowas findet:

            <script style = 'visibility : hidden'>
            

            Was willst Du denn? Noch nie ein unsichtbares Skript gesehen???😉

      2. Hi there,

        Z.B. hier: Photo-Shop Tutorial

        Möchte ich oben links auf der Seite das Wort Photoshop kopieren, geht das nur über das Menü Bearbeiten>Kopieren meines Browsers. Nicht über Strg+c.

        Naja, es geht auch über "Markieren mit der Maus->rechte Maustaste->Aus dem Kontextmenü kopieren wählen->Kopieren" (mag sein, daß es Browser gibt, in denen das nicht funktioniert, was aber im Falle vom Kopieren des Wortes "Photoshop" verschmerzbar scheint...;)