Seite 1 von 8 12345678 LetzteLetzte
Ergebnis 1 bis 15 von 112
Like Tree1Likes

Thema: Pause erzwingen mit setInterval oder setTimeout

  1. #1
    hilfebedürftig ist offline Eroberer
    registriert
    16-06-2012
    Beiträge
    58

    Pause erzwingen mit setInterval oder setTimeout

    Hi,

    ich möchte bzw. muss eine Pause erzwingen, da ich auf einer Seite automatisch Button klicken lassen möchte, was allerdings ohne Pause zu schnell laufen würde.
    Ich habe das wie folgt umgesetzt:

    Code:
    setInterval(pauseErzwingen, 2000);
    
    function pauseErzwingen()													
    {
    	if (tdEinlesen[9].getElementsByTagName('a')[0])
    	{
    		tdEinlesen[9].getElementsByTagName('a')[0].click();
    	}
    }
    leider funktioniert der code nicht. auch meine versuche mit setTimeout sind bisher kläglich gescheitert.
    Hat jemand einen Tipp für mich?

    wenn ich die "Pausen-Anweisung" weg lasse, dann funktioniert der klick, wenn die Anweisung drin steht, kommt die Fehlermeldung:


    Fehler: pauseErzwingen is not defined

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

    AW: Pause erzwingen mit setInterval oder setTimeout

    Wenn du diesen Fehler bekommst, dann ist das nicht der Code den du uns zeigst.
    Hoffe ich konnte helfen

  3. #3
    hilfebedürftig ist offline Eroberer
    registriert
    16-06-2012
    Beiträge
    58

    AW: Pause erzwingen mit setInterval oder setTimeout

    Code:
    setInterval(pauseErzwingen, 2000);
    
    function pauseErzwingen()													
    {
    	if (tdEinlesen[10].getElementsByTagName('a')[0])
    	{
    		tdEinlesen[10].getElementsByTagName('a')[0].click();
    	}
    }

    das ist die Zeile die in der Fehlermeldung angezeigt wird - setInterval(pauseErzwingen, 2000);

    Fehler: pauseErzwingen is not defined
    Zeile: 135

    definitiv

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

    AW: Pause erzwingen mit setInterval oder setTimeout

    Sind das jetzt 2 Funktionen oder warum hast du im ersten Beispiel [9] und im jetzigen Beispiel [10] ???
    Hast du mal einen Testlink?
    Hoffe ich konnte helfen

  5. #5
    hilfebedürftig ist offline Eroberer
    registriert
    16-06-2012
    Beiträge
    58

    AW: Pause erzwingen mit setInterval oder setTimeout

    ja, es sind jetzt zwei funktionen, da ich vorher eine if schleife habe, die einen schalter umlegt:
    einen testlink kann ich dir leider nicht zur verfügung stellen.

    ich kann aber sagen, dass alle funktioniert, wenn ich den befehl mit der pause weg lasse ^^


    Code:
    if (inaktiveButton != -1 || td10Inhalt == "ja")										
    {
    	setInterval(pauseErzwingen, 2000);
    
    	function pauseErzwingen()													
    	{
    		if (tdEinlesen[9].getElementsByTagName('a')[0])
    		{
    			tdEinlesen[9].getElementsByTagName('a')[0].click();
    		}
    	}
    	
    }
    else
    {
    	setInterval(pauseErzwingen, 2000);
    	
    	function pauseErzwingen()													
    	{
    		if (tdEinlesen[10].getElementsByTagName('a')[0])
    		{
    			tdEinlesen[10].getElementsByTagName('a')[0].click();
    		}
    	}
    	
    }

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

    AW: Pause erzwingen mit setInterval oder setTimeout

    Du hast also 2 Mal die Funktion pauseErzwingen() deklariert, d.h. die zuletzt deklarierte Funktion pauseErzwingen() ist allein gültige und "überschreibt" alle vorhergehende Deklarationen. So wie es aussieht geht dadurch deine Referenz auf die zuvor deklarierte Funktion pauseErzwingen() verloren und ist dadurch "not defined".
    Hoffe ich konnte helfen

  7. #7
    hilfebedürftig ist offline Eroberer
    registriert
    16-06-2012
    Beiträge
    58

    AW: Pause erzwingen mit setInterval oder setTimeout

    ich dachte die funktion kommt nur zum tragen, wenn entweder das ein oder das andere in der if-schleife zutrifft?
    wenn ich die zweite funktion in "pauseErzwingen2" umbenenne, sollte das problem geklärt sein?


    EDIT: also es funktioniert leider auch damit nicht und der code wird anschließend auch nicht weiter ausgeführt ... Fehler: pauseErzwingen2 is not defined
    Geändert von hilfebedürftig (26-06-2012 um 15:24 Uhr)

  8. #8
    Avatar von scrypter
    scrypter ist offline Haudegen
    registriert
    25-06-2011
    Beiträge
    706

    AW: Pause erzwingen mit setInterval oder setTimeout

    probier's mal so
    Code:
    if (inaktiveButton != -1 || td10Inhalt == "ja")										
    {
    	if (tdEinlesen[9].getElementsByTagName('a')[0])
    	{
    		window.setTimeout(function(){tdEinlesen[9].getElementsByTagName('a')[0].click()}, 2000);
    	}
    }
    else
    {
    	if (tdEinlesen[10].getElementsByTagName('a')[0])
    	{
    		window.setTimeout(function(){tdEinlesen[10].getElementsByTagName('a')[0].click()}, 2000);
    	}
    }
    Geändert von scrypter (26-06-2012 um 18:14 Uhr) Grund: tippfehler

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

    AW: Pause erzwingen mit setInterval oder setTimeout

    Das passiert weil du die Funktionen im Anweisungsblock der if-Abfrage deklarierst, aber schon davor eine Funktionsreferenz übergeben willst. Wenn du es unbedingt mit Funktionsreferenzen verwirklichen willst, dann so:
    Code:
    var pauseErzwingen;
    
    if (inaktiveButton != -1 || td10Inhalt == "ja")
    {
    	pauseErzwingen = function ()
    	{
    		if (tdEinlesen[9].getElementsByTagName('a')[0])
    		{
    			tdEinlesen[9].getElementsByTagName('a')[0].click();
    		}
    	}
    	
    	setInterval(pauseErzwingen, 2000);
    
    }
    else
    {
    	pauseErzwingen = function ()
    	{
    		if (tdEinlesen[10].getElementsByTagName('a')[0])
    		{
    			tdEinlesen[10].getElementsByTagName('a')[0].click();
    		}
    	}
    	
    	setInterval(pauseErzwingen, 2000);
    	
    }
    Hoffe ich konnte helfen

  10. #10
    Avatar von scrypter
    scrypter ist offline Haudegen
    registriert
    25-06-2011
    Beiträge
    706

    AW: Pause erzwingen mit setInterval oder setTimeout

    hilfebedürftig will doch eine Pause, also muss setTimeout verwendet werden, da setInterval einen regelmäßigen Takt erzeugt, d.h. es wird immer wieder der Klick ausgeführt

  11. #11
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: Pause erzwingen mit setInterval oder setTimeout

    Der Fehler kann nicht von dem Code kommen den du uns zeigst, da pauseErzwingen() im Interval bekannt ist (und dank hoisting auch in der ganzen Funktion). Zeig doch mal den vollständigen Code, da muss noch irgendetwas anderes sein.

  12. #12
    hilfebedürftig ist offline Eroberer
    registriert
    16-06-2012
    Beiträge
    58

    AW: Pause erzwingen mit setInterval oder setTimeout

    Hi,

    diese Variante hatte ich zwar auch schon versucht, aber irgendwie hat dein Hinweis jetzt Früchte getragen.
    Leider bin ich damit noch nicht am Ziel, denn nun erscheint idotischerweise der nächste Fehler, allerdings nicht in meiner Datei sondern resource://greasemonkey/runScript.js

    Zeitstempel: 26.06.2012 16:19:55
    Fehler: tdEinlesen[10] is undefined ???
    Quelldatei: resource://greasemonkey/runScript.js
    Zeile: 140


    resource://greasemonkey/runScript.js
    Code:
    function GM_runScript(code, sandbox, maxJSVersion) { Components.utils.evalInSandbox(code, sandbox, maxJSVersion); }
    // NOTE:
    // This function is intentionally contained completely within line one.
    // This is used to grant the a predictable file/line numbers to exceptions
    // raised inside the eval.
    //
    // This is a workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=307984
    //
    // Users: If you see an error coming from this file, that's because we haven't
    // yet found a way to work around the bug completely.  If you have asynchronous
    // code (setTimeout, any kind of event listener or GM_xmlhttpRequest callback),
    // any errors within it will be reported as coming from this file at one line
    // number higher than the real the line within your script (and any prepended
    // @require files).
    //
    // For example, this script:
    //   https://gist.github.com/1154205
    // Generated an line in the error console like:
    //   Error: undefined is not a function
    //   Source File: resource://greasemonkey/runScript.js
    //   Line: 27
    // This error is actually from line 26 of the script which indeed is
    // "undefined();" and guaranteed to cause an error.  Because it was called
    // inside a setTimeout(), we were unable to catch and fix the error.
    //
    
    var EXPORTED_SYMBOLS = ["GM_runScript", "GM_runScript_filename"];
    
    GM_runScript_filename = Components.stack.filename;

    PS: sry, es gab noch einige zwischenpostings ... ich versuch mal licht ins dunkel zu bringen.
    Geändert von hilfebedürftig (26-06-2012 um 16:37 Uhr)

  13. #13
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.666

    AW: Pause erzwingen mit setInterval oder setTimeout

    Zitat Zitat von ein schlauer Beitrag anzeigen
    Der Fehler kann nicht von dem Code kommen den du uns zeigst, da pauseErzwingen() im Interval bekannt ist (und dank hoisting auch in der ganzen Funktion). Zeig doch mal den vollständigen Code, da muss noch irgendetwas anderes sein.
    doch, im ff schon https://developer.mozilla.org/en/Jav...ments/function
    Functions can be conditionally declared. That is, a function definition can be nested within an if statement. Technically, such declarations are not actually function declarations; they are function expressions.
    laut standard ist das glaube ich syntaktisch falsch

  14. #14
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: Pause erzwingen mit setInterval oder setTimeout

    Zitat Zitat von hesst Beitrag anzeigen
    doch, im ff schon https://developer.mozilla.org/en/Jav...ments/function

    laut standard ist das glaube ich syntaktisch falsch
    Wie kommen die denn auf sowas?

    Ok, dann muss die Funktionsdeklaration einfach vor dem Aufruf von setInterval (wobei das vermutlich ein setTimeout sein soll).

    EDIT: Das machst auch nur Firefox so

  15. #15
    hilfebedürftig ist offline Eroberer
    registriert
    16-06-2012
    Beiträge
    58

    AW: Pause erzwingen mit setInterval oder setTimeout

    also jungs, sollte das ganze jetzt so aussehen?
    .. oder verstehe ich euch falsch?

    Code:
    function blablub()
    {
      tdEinlesen[10].getElementsByTagName('a')[0].click()
    }
    
    window.setTimeout(blablub, 2000);

Seite 1 von 8 12345678 LetzteLetzte

Ähnliche Themen

  1. JavaScript Pause
    Von Alarska im Forum JavaScript
    Antworten: 15
    Letzter Beitrag: 09-06-2007, 11:34
  2. setInterval;setTimeout in IFrame editable
    Von shf10105 im Forum JavaScript
    Antworten: 4
    Letzter Beitrag: 01-11-2006, 17:12
  3. Geschwindigkeit bei setTimeout oder setInterva
    Von Angelina im Forum JavaScript
    Antworten: 8
    Letzter Beitrag: 20-06-2004, 12:53
  4. setInterval bzw window.setTimeout
    Von it's-me im Forum JavaScript
    Antworten: 0
    Letzter Beitrag: 08-04-2002, 11:56
  5. Pause-Funktion
    Von Papageno im Forum Flash
    Antworten: 8
    Letzter Beitrag: 08-03-2002, 12:32

Lesezeichen

Berechtigungen

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