Felix Riesterer: per jscript onklick ändern!

Beitrag lesen

Lieber ReloadedMichi,

Der Code funktioniert leider nicht ._.

doch.

Die Website geht nach 3s automatisch weiter.

Siehst Du, dass er funktioniert?

Ich brauchs aber so, dass er sich nur weiterleitet, wenn die 3s vorbei sind UND nach diesen 3sekunden die Maus über den Code gefahren kommt.

Warum hast Du das in Deinem Ausgangsposting verheimlicht?

Wir ändern also unsere Vorgehensweise.

1.) Wir brauchen eine Variable, die uns sagen kann, ob weitergeleitet werden darf, oder nicht. Soetwas nennt man ein Flag. Dieses kann 3 Sekunden nach dem Laden der Seite von "verboten" auf "erlaubt" verändert werden. Dazu braucht es eine setTimeout-Funktion.

2.) Wir brauchen das Maus-Ereignis, um eine Funktion auszuführen, die das Flag daraufhin prüft, ob weitergeleitet werden kann, oder nicht. Je nach Erlaubnis wird dann weitergeleitet, oder eben nicht. Dass der User ohne Klick-auf-Link die Seite verlässt, ist allerdings störend! Willst Du das wirklich?

Jetzt bauen wir eine Funktion, die beim Laden der Seite sofort ausgeführt wird, in die wir alle unsere Wünsche hineinpacken:

(function () {  
  
    var redirect = false; // unser Flag  
  
    // wenn die Seite fertig geladen hat, tue dies:  
    document.onload = function () {  
  
        var code = document.getElementById("haa");  
  
        // alle Elemente sollten geladen sein, trotzdem prüfen  
        if (code) {  
  
            /* jetzt bestimmen, was beim Überfahren  
               mit der Maus gemacht werden soll: */  
            code.onmouseover = function () {  
  
                // anzuzeigender Wert setzen  
                code.value = "7135-5412-1354-2431";  
  
                /* die Variable "redirect" ist hier bekannt,  
                   das liegt am Geltungsbereich von Variablen  
                   in JavaScript. */  
                if (redirect) {  
                    // jetzt weiterleiten:  
                    window.location.href = "gefunden.html";  
                }  
            };  
        }  
  
        // in drei Sekunden das Flag ändern  
        window.setTimeout(  
            // diese Funktion ändert das Flag:  
            function () {  
                /* die Variable "redirect" ist hier bekannt,  
                   das liegt am Geltungsbereich von Variablen  
                   in JavaScript. */  
                redirect = true;  
            },  
            // drei Sekunden warten  
            3000  
        );  
    };  
  
}()); // anonyme Funktion gleich ausführen

Natürlich habe ich obiges schon wieder nicht getestet, aber dann hast Du wenigstens auch etwas selbst getan. ;-)

Liebe Grüße,

Felix Riesterer.

--
"Wäre die EU ein Staat, der die Aufnahme in die EU beantragen würde, müsste der Antrag zurückgewiesen werden - aus Mangel an demokratischer Substanz." (Martin Schulz, Präsident des EU-Parlamentes)