Ergebnis 1 bis 12 von 12
Like Tree2Likes
  • 1 Post By tsseh
  • 1 Post By tsseh

Thema: Greasemonkey: Auto Reload und Click auf Button

  1. #1
    omabande ist offline Grünschnabel
    registriert
    27-03-2017
    Beiträge
    6

    Greasemonkey: Auto Reload und Click auf Button

    Hallo,

    ich versuche gerade mein erstes GreaseMonkey Script zu basteln.

    Folgendes soll es können:

    * Website Reload alle 3 Sekunden
    * Wenn der entsprechende Button verfügbar ist draufklicken, Reload stoppen und Sound abspielen.

    Aktuell erledigt eine Erweiterung den AutoReload der Seite und wenn der Button verfügbar ist wird er auch geklickt. Und zwar mit folgender Codezeile:

    document.getElementsByClassName('waste_button').click();

    Ich würde gerne alles in Greasemonke erledigt haben.....

    Geht das????

    So sieht das Script aktuell aus:

    HTML-Code:
    // ==UserScript==
    // @name         Autoclick
    // @namespace    [url=http://tampermonkey.net/]Tampermonkey ? Home[/url]
    // @version      0.1
    // @description  try to take over the world!
    // @author       You
    // @match        
    // @grant        none
    // ==/UserScript==
    
    (function() {
        'use strict';
    
        document.getElementsByClassName('waste_button')[0].click();
    })();
    Geändert von mikdoe (27-03-2017 um 14:10 Uhr) Grund: code tags

  2. #2
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.394

    AW: Greasemonkey: Auto Reload und Click auf Button

    * freigeschaltet *
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png
    Sorry wenn ich manchmal ohne Hallo und nur klein schreibe! Dann bin ich nicht unfreundlich sondern mit nervigem kleinem Touch Tablet zugange

  3. #3
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.473

    AW: Greasemonkey: Auto Reload und Click auf Button


  4. #4
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.442

    AW: Greasemonkey: Auto Reload und Click auf Button

    Zitat Zitat von omabande Beitrag anzeigen
    Geht das?
    Ja, aber die Soundausgabe ist etwas komplizierter, deswegen würde ich diese erste einmal hinten anstellen.

    PS: Zusätzlich brauchst du noch window.setTimeout().

  5. #5
    omabande ist offline Grünschnabel
    registriert
    27-03-2017
    Beiträge
    6

    AW: Greasemonkey: Auto Reload und Click auf Button

    Erstmal Danke....

    wie muss ich das Script denn aufbauen dass es die Seite alle 3 Sekunden neu lädt und wenn der Button verfügbar ist darauf klickt und den Reload stoppt?

  6. #6
    Avatar von miniA4kuser
    miniA4kuser ist offline Lounge-Member
    registriert
    12-07-2006
    Beiträge
    3.020

    AW: Greasemonkey: Auto Reload und Click auf Button

    Wie dir schon gesagt wurde mittels window.setTimeout() und einem location.reload()
    Hoffe ich konnte helfen

  7. #7
    omabande ist offline Grünschnabel
    registriert
    27-03-2017
    Beiträge
    6

    AW: Greasemonkey: Auto Reload und Click auf Button

    Also, ich hab mal gebastelt.... das Klicken auf den Button funktioniert wenn er auftaucht.....

    Nur der Reload der Page noch nicht?????

    An was könnte das liegen????

    HTML-Code:
    (function() {
        'use strict';
    
        var id = 'wastebutton';
        
    if (document.getElementsByClassName(id) === true);
        {
            document.getElementsByClassName('wastebutton')[0].click();
        
        } if (document.getElementsByClassName(id) === false); {
            window.setTimeout("location.reload()",2000);
        
    }
    })()
    Geändert von omabande (30-03-2017 um 09:43 Uhr)

  8. #8
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.473

    AW: Greasemonkey: Auto Reload und Click auf Button

    Zitat Zitat von omabande Beitrag anzeigen
    An was könnte das liegen????
    Zitat Zitat von omabande Beitrag anzeigen
    Also, ich hab mal gebastelt.... das Klicken auf den Button funktioniert wenn er auftaucht.....
    das liegt daran, dass du hier ein semikolon hast
    Code:
    if (document.getElementsByClassName(id) === true);
    dadurch wird der folgende code immer ausgeführt
    Code:
    {
      document.getElementsByClassName('wastebutton')[0].click();  
    }
    Zitat Zitat von omabande Beitrag anzeigen
    Nur der Reload der Page noch nicht?????
    das liegt daran, dass getElementsByClassName ein array/collection liefert, die ist nie === true oder false, womit der vergleich immer false liefert und die if-anweisung damit nie ausgewertet wird
    die if-anweisung ist aber auch hier wieder ein semikolon
    damit wird
    Code:
    {
            window.setTimeout("location.reload()",2000);
        
    }
    auch immer ausgeführt und die seite sollte eigentlich alle 2 sekunden neu geladen werden.
    omabande likes this.

  9. #9
    omabande ist offline Grünschnabel
    registriert
    27-03-2017
    Beiträge
    6

    AW: Greasemonkey: Auto Reload und Click auf Button

    Zitat Zitat von tsseh Beitrag anzeigen
    das liegt daran, dass du hier ein semikolon hast
    Code:
    if (document.getElementsByClassName(id) === true);
    dadurch wird der folgende code immer ausgeführt
    Code:
    {
      document.getElementsByClassName('wastebutton')[0].click();  
    }
    Das Semikolon habe ich raus.
    das liegt daran, dass getElementsByClassName ein array/collection liefert, die ist nie === true oder false, womit der vergleich immer false liefert und die if-anweisung damit nie ausgewertet wird
    die if-anweisung ist aber auch hier wieder ein semikolon
    damit wird
    Code:
    {
            window.setTimeout("location.reload()",2000);
        
    }
    auch immer ausgeführt und die seite sollte eigentlich alle 2 sekunden neu geladen werden.
    Auch hier wurde das Semikolon entfernt.

    Wie kann ich denn dann abklären ob die Bedingung ob der Button vorhanden ist oder nicht und dementsprechend eine Aktion ausgeführt wird???

    Und nein, die Seite lädt noch nicht alle 2 Sekunden

  10. #10
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.473

    AW: Greasemonkey: Auto Reload und Click auf Button

    Zitat Zitat von omabande Beitrag anzeigen
    Wie kann ich denn dann abklären ob die Bedingung ob der Button vorhanden ist oder nicht und dementsprechend eine Aktion ausgeführt wird???
    wenn ein element mit der entsprechenden class vorhanden ist, ist die collection nicht leer, sonst ist sie es
    https://developer.mozilla.org/de/doc...#Eigenschaften

    Zitat Zitat von omabande Beitrag anzeigen
    Und nein, die Seite lädt noch nicht alle 2 Sekunden
    ach ja, der click geht auf undefined, wenn getElementsByClassName eine leere collection liefert
    Code:
    document.getElementsByClassName('wastebutton')[0].click();
    damit bricht das script ab
    omabande likes this.

  11. #11
    omabande ist offline Grünschnabel
    registriert
    27-03-2017
    Beiträge
    6

    AW: Greasemonkey: Auto Reload und Click auf Button

    Ich beneide Euch ja dass Ihr den Code wie ein Buch lesen könnt.....

    Danke für die Antworten. Werde mal weiterbasteln, versuchen zu kapieren und mich dann melden.

  12. #12
    Avatar von miniA4kuser
    miniA4kuser ist offline Lounge-Member
    registriert
    12-07-2006
    Beiträge
    3.020

    AW: Greasemonkey: Auto Reload und Click auf Button

    Statt var id solltest lieber einen eindeutigen Variablennamen wählen, damit du das nich mit einer id verwechslest, also z.B. var wastebutton oder var node wenn du in dem Script nur den einen "Konten" benötigst.

    Stat dem reinen if (node) {...} kannst du auch ein if (node) {...} else {...} verwenden, um ein wahr/falsch zusteuern.

    window.SetTimeout() sollte mann keinen String (Zeichenkette) übergeben. Stattdessen eine Funktionsreferenz oder eine anonyme Funktion übergeben.

    Beispiel (ungetestet):
    Code:
    (function() {
        'use strict';
    
        var node = document.getElementsByClassName('wastebutton')[0];
        
        if (node) {
            node.click();
        } else {
            window.setTimeout(function () {
                window.location.reload();
            }, 2000);
        }
    })()
    Hoffe ich konnte helfen

Ähnliche Themen

  1. Button on click ändern
    Von kyros im Forum JavaScript
    Antworten: 6
    Letzter Beitrag: 25-05-2011, 16:05
  2. click bei neu erstellten Button
    Von Saint im Forum JavaScript
    Antworten: 5
    Letzter Beitrag: 15-04-2011, 13:49
  3. Layer Scroller (auto) + Reload
    Von tipetan im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 11-11-2009, 09:39
  4. Image erzeugen per Button Click
    Von Logan im Forum JavaScript
    Antworten: 4
    Letzter Beitrag: 08-05-2008, 17:39
  5. CSS: clip:rect(auto, auto, auto, auto)
    Von ABNetworks.DE im Forum Allgemeines
    Antworten: 3
    Letzter Beitrag: 13-02-2003, 17:42

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •