1. #1
    Avatar von Iomega
    Registriert seit
    11.02.2013
    Beiträge
    227
    Thanked 6 Times in 6 Posts

    Lächeln Script Hilfe Keybind

    Hallöchen ich habe ein Problem.

    Ich würde gerne mein Script erweitern, bin in Sachen Programmierung eine vollkommene Niete .
    Klar, die ein oder andere Sache habe ich hinbekommen, aber mit meinem vorhaben scheitere ich gerade und bitte daher hier um Hilfe.
    Es geht um ein Script Addon für Chrome das sich Tampermonkey nennt.
    Dort hat mir jemand ein gewünschtes Script geschrieben, welches ich dann mit Glück etwas erweitern konnte, einfach weil ich mich noch ein wenig mit Variablen auskannte.
    Das war es aber auch und nun stehe ich auf dem schlau.

    Ich möchte:
    Das das Script, nach dem erfolgreichen Neu Laden einer Webseite, einen Keybind ausführt.

    Als Beispiel:
    Heißt, das Script läuft, wartet... Event beginnt, Script führt den Reload aus (Seite lädt einmal neu), wartet paar Sekunden und drückt dann automatisch zb. STRG + ENDE.
    Der Grund warum ich das möchte: Chrome erlaubt ja: Tastenkombinationen womit extension ausgelöst werden. Und genau das möchte ich damit erreichen.
    Oder wäre es möglich, dass er dann ein Autohotkey-Skript ausführt? Denn das löst es auch aus.

    Script Ohne Versuch:
    Code:
    // ==/UserScript==
    (function() {
        'use strict';
        document.title = "ReloadxRecord"
        const timeToWait = 15; // in seconds
        //waits a few seconds before checking if someone is live
        setTimeout(() => {
            // only check if channel isn't already live when the script started (main use for reloading the page if live)
            if (document.querySelector('.twilight-main .live-indicator-container') === null) {
                checkIfLive();
            }
            else {
                const current = new Date();
                const time = current.toLocaleTimeString("de-DE");
                console.log("                                                                          %c�� Reload was successful  ⌛⌛ " + time + " ⌛⌛  channel is live ��","background:green;color:#fff;font-size: x-large");
            }
        }, timeToWait * 1000);
    
        function checkIfLive() {
            if (document.querySelector('.twilight-main .live-indicator-container') !== null) {
                //reload page because channel is live:
                location.reload();
            }
            const current = new Date();
            const time = current.toLocaleTimeString("de-DE");
            console.log("                                                                         %c�� Channel is not live  ⌛⌛ " + time + " ⌛⌛  checking again... ��","background:red;color:#fff;font-size: x-large");
            setTimeout(() => checkIfLive(), timeToWait * 1000);
        }
    
    })();
    Probiert habe ich es so, was nur nicht funktioniert :S :

    Code:
    // ==/UserScript==
    (function() {
        'use strict';
        document.title = "ReloadxRecord"
        const timeToWait = 15; // in seconds
        //waits a few seconds before checking if someone is live
        setTimeout(() => {
            // only check if channel isn't already live when the script started (main use for reloading the page if live)
            if (document.querySelector('.twilight-main .live-indicator-container') === null) {
                checkIfLive();
            }
            else {
                const current = new Date();
                const time = current.toLocaleTimeString("de-DE");
                console.log("                                                                          %c�� Reload was successful  ⌛⌛ " + time + " ⌛⌛  channel is live ��","background:green;color:#fff;font-size: x-large");
            }
        }, timeToWait * 1000);
    
        function checkIfLive() {
            if (document.querySelector('.twilight-main .live-indicator-container') !== null) {
                //reload page because channel is live:
                location.reload();
            }
            const current = new Date();
            const time = current.toLocaleTimeString("de-DE");
            console.log("                                                                         %c�� Channel is not live  ⌛⌛ " + time + " ⌛⌛  checking again... ��","background:red;color:#fff;font-size: x-large");
            document.onkeyup = function(e) {
                if (e.ctrlKey && e.which == 35) {
                    alert("strg+end key was pressed");
                }
            }
            setTimeout(() => checkIfLive(), timeToWait * 1000);
        }
    
    })();
    Ich hoffe mir kann jemand die richtige Lösung geben, denn wie gesagt, ich habs probiert, aber mit null Programmierungskünsten wird das wohl nix. Zumal ich Arbeiten muss und schon 2-3 Tage daran versuche :S .

    Ich bedanke mich vielmals

    Grüße
    Geändert von Iomega (18.12.2022 um 01:11 Uhr)

  2. #2
    Avatar von Manipulate
    Registriert seit
    04.12.2011
    Beiträge
    520
    Thanked 505 Times in 356 Posts

    Standard AW: Script Hilfe Keybind

    Moin,
    eigentlich kann es mir egal sein, ein bisschen stören tut es mich aber trotzdem:
    [...] Dort hat mir jemand ein gewünschtes Script geschrieben [...]
    erwähnst aber nicht wer, und entfernst auch den Header wo der author drinne stand. Ich finde, zumindest hier in u-labs, wo du das Script auch her hast, hättest du credit geben können.
    Ich bin auf meine Pasta stolz! (so halb)
    Ich verstehe, dass du dieses Problem in mehreren Foren postest um deine Chance auf eine Antwort zu erhöhen, finde es aber trotzdem ein wenig schwach.

    [...] Zumal ich Arbeiten muss und [...]
    Jap, ich auch. Arbeit war die letzten 2-3 Monate sehr stressig, ich kam selbst privat zu nichts. Zumal auch ansonsten privat einiges bei mir los war.
    Mag sein, dass ich zu viel auf Kleinigkeiten rumreite.

    Um on-topic zu bleiben:
    Das Problem ist, dass du den Code nicht verstehst (und um Gottes Willen, das ist auch nicht schlimm, mit dem könnte man nämlich ne gute und leckere Spaghetti Bolognese kochen) und dadurch nicht weißt, welche Logik genau was macht und abbildet.

    Code:
    document.onkeyup = function(e) {
                if (e.ctrlKey && e.which == 35) {
                    alert("strg+end key was pressed");
                }
            }
    muss außerhalb des setTimeout sein, am besten direkt nach dem "(function() {", das erzeugt nämlich ein EventListener, wenn das Event "onkeyup" auftritt (Sprich: Du einen Knopf drückst und dann loslässt), wird die Funktion dann ausgeführt.
    Aber das hilft dir in dem Anwendungsfall nicht. Du musst dieses Event "simulieren", bzw. selbst erzeugen.
    Es muss in folgendem Abschnitt eine Anpassung erfolgen:
    Code:
            else {
                const current = new Date();
                const time = current.toLocaleTimeString("de-DE");
                console.log("                                                                          %c�� Reload was successful  ⌛⌛ " + time + " ⌛⌛  channel is live ��","background:green;color:#fff;font-size: x-large");
            }
    da hier die Logik passiert, wenn ein Channel live gegangen ist (oder bereits beim Script-Start live war). Momentan ist dort nur Logging untergebracht worden.
    Füg mal folgendes nach dem Log Statement im else Block ein:
    Code:
    window.dispatchEvent(new KeyboardEvent("keydown", {
        key: "End",
        keyCode: 35, 
        code: "End",
        which: 35,
        ctrlKey: true
    }));
    Ich weiß nicht, inwiefern Tampermonkey Rechte hat um sowas abzufeuern. Je nachdem müssen die Tampermonkey Rechte angepasst werden (ich meine mal gesehen zu haben, dass es sowas ähnliches wie Rechte gibt)
    Note: Hab es nur mit einem keydown listener in der Entwicklerkonsole getestet. Ob damit auch dein Makro gestartet wird, kann ich nicht sagen.

  3. The Following User Says Thank You to Manipulate For This Useful Post:

    Iomega (22.12.2022)

  4. #3
    Avatar von Iomega
    Registriert seit
    11.02.2013
    Beiträge
    227
    Thanked 6 Times in 6 Posts

    Standard AW: Script Hilfe Keybind

    Zitat Zitat von Manipulate Beitrag anzeigen
    Moin,
    eigentlich kann es mir egal sein, ein bisschen stören tut es mich aber trotzdem:

    erwähnst aber nicht wer, und entfernst auch den Header wo der author drinne stand. Ich finde, zumindest hier in u-labs, wo du das Script auch her hast, hättest du credit geben können.
    Ich bin auf meine Pasta stolz! (so halb)
    Ich verstehe, dass du dieses Problem in mehreren Foren postest um deine Chance auf eine Antwort zu erhöhen, finde es aber trotzdem ein wenig schwach.


    Jap, ich auch. Arbeit war die letzten 2-3 Monate sehr stressig, ich kam selbst privat zu nichts. Zumal auch ansonsten privat einiges bei mir los war.
    Mag sein, dass ich zu viel auf Kleinigkeiten rumreite.

    Um on-topic zu bleiben:
    Das Problem ist, dass du den Code nicht verstehst (und um Gottes Willen, das ist auch nicht schlimm, mit dem könnte man nämlich ne gute und leckere Spaghetti Bolognese kochen) und dadurch nicht weißt, welche Logik genau was macht und abbildet.

    Code:
    document.onkeyup = function(e) {
                if (e.ctrlKey && e.which == 35) {
                    alert("strg+end key was pressed");
                }
            }
    muss außerhalb des setTimeout sein, am besten direkt nach dem "(function() {", das erzeugt nämlich ein EventListener, wenn das Event "onkeyup" auftritt (Sprich: Du einen Knopf drückst und dann loslässt), wird die Funktion dann ausgeführt.
    Aber das hilft dir in dem Anwendungsfall nicht. Du musst dieses Event "simulieren", bzw. selbst erzeugen.
    Es muss in folgendem Abschnitt eine Anpassung erfolgen:
    Code:
            else {
                const current = new Date();
                const time = current.toLocaleTimeString("de-DE");
                console.log("                                                                          %c�� Reload was successful  ⌛⌛ " + time + " ⌛⌛  channel is live ��","background:green;color:#fff;font-size: x-large");
            }
    da hier die Logik passiert, wenn ein Channel live gegangen ist (oder bereits beim Script-Start live war). Momentan ist dort nur Logging untergebracht worden.
    Füg mal folgendes nach dem Log Statement im else Block ein:
    Code:
    window.dispatchEvent(new KeyboardEvent("keydown", {
        key: "End",
        keyCode: 35, 
        code: "End",
        which: 35,
        ctrlKey: true
    }));
    Ich weiß nicht, inwiefern Tampermonkey Rechte hat um sowas abzufeuern. Je nachdem müssen die Tampermonkey Rechte angepasst werden (ich meine mal gesehen zu haben, dass es sowas ähnliches wie Rechte gibt)
    Note: Hab es nur mit einem keydown listener in der Entwicklerkonsole getestet. Ob damit auch dein Makro gestartet wird, kann ich nicht sagen.
    Hallöchen ,

    zu deinen anliegen: Jeder der fragt, kriegt das volle Script, bis Heute habe ich deinen Namen daraus NICHT entfernt, warum auch, gibt keinen Grund .
    Ich habe nur paar Kommis entfernt, die nicht mehr stimmten und das auch nur, um es so kurz wie möglich zu halten.
    In den Englischen Foren wird es denen leider auch nicht viel bringen, wenn ich sage User XYZ hat es geschrieben den es dort aber nicht gibt. Oder wenn ich sage User X aus Forum Y, dann habe ich direkt einen Ban wegen Werbung.
    Und ich habe es in vielen Foren drin, nirgends habe ich den Header drin da es ja um den Code geht, sollte ja auch logisch sein und im Header sind ja auch die URLs die denen leider ebenfalls nix angehen, daher mache ich es so wie jeder und poste nur den Code um den es geht. Das hat nichts mit dir zu tun, du hattest leider keine Zeit und bevor ich dich weiter störe oder mich wieder falsch verstehst, habe ich es so versucht.
    Und was soll ich sonst groß tun, wenn ich es nur hier habe, antwortet man mir mit Glück, nur vllt... Hast ja gesehen, geantwortet hast nur du. Und bevor ich gar keine Antwort kriege, versuche ich es verständlicherweise auch woanders um wie du schon sagtest meine Chance zu erhöhen mein Problem gelöst zu bekommen.
    Mit Kleinigkeiten oder so, hat niemand was gesagt, daher alles gut.
    Aber weiter gehts im Takt:
    Das stimmt, das is ja das Problem, ich kann kein Javascript, als du mir den Tipp mit der Variable gegeben hast, konnte ich froh sein das ichs mit der Zeit in der Console hinbekommen habe, das war es aber auch .
    Danke für deine Ergänzung, ich werde es mal ausprobieren.

    EDIT: So, nach jeglichen Test geht dies wohl leider nicht, egal ob nur die keys, oder script mit keys etc.. hab beide Möglichkeiten getestet .
    Javascript kann leider nicht übergreifend agieren oder im Browser ausbrechen, wodurch dies so gerade nicht geht :S .
    Ich danke dir aber für deine Mühe.
    Ab jetzt heißt es: Addon ändern oder ein eigenes bauen oder halt Selenium xD
    Das kann ja was werden ...
    Ich bedanke mich aber vielmals

    Grüßßßeeeee
    Geändert von Iomega (22.12.2022 um 09:23 Uhr)

Ähnliche Themen

  1. Antworten: 12
    Letzter Beitrag: 27.11.2022, 11:59
  2. [Shell Script]Upload Script (7z & ncftp)
    Von Sq252 im Forum Showroom
    Antworten: 0
    Letzter Beitrag: 08.01.2012, 18:12
  3. Facebook Script // Hilfe !
    Von Fire im Forum Internet und Technik
    Antworten: 11
    Letzter Beitrag: 16.12.2011, 00:40
  4. [Hilfe] Brauche hilfe bei Visual Basic
    Von Anonymous im Forum Sonstige
    Antworten: 3
    Letzter Beitrag: 25.11.2011, 23:36
  5. K-Script Bot FAQ
    Von JackThursby im Forum Knuddels Allgemein
    Antworten: 6
    Letzter Beitrag: 22.10.2011, 22:55
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.