[JavaScript] Funktion läuft im IE8 / nicht in Firefox (3.6.11)

Dieses Thema im Forum "Webentwicklung" wurde erstellt von MaxDev, 22. Oktober 2010 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 22. Oktober 2010
    Funktion läuft im IE8 / nicht in Firefox (3.6.11)

    Hallo zusammen,

    heute habe ich ein Problem mit Javascript. Während meiner Fehlersuche konnte ich das Problem auf eine Funktion einschränken. Diese habe ich in eine Testseite extrahiert, um das Problem zu verdeutlichen.

    Das folgende Script läuft (bei mir) im IE8 wunderbar, in Firefox (3.6.11) leider nicht so. Es geht darum auf Veränderung in einer Textbox zu reagieren.

    HTML:
    <html>
    
    <head>
     <title>Fehlersuche</title>
    
     <script type="text/javascript">
     <!--
    
     function handleKeyUp(){
     alert("handleKeyUp");
    
     if(event.keyCode == 40){ 
     alert(event.keyCode);
     }
     else if(event.keyCode == 38){
     alert(event.keyCode);
     }
     else if(event.keyCode == 13){
     alert(event.keyCode);
     }
     else if(event.keyCode == 37 || event.keyCode == 39 || event.keyCode == 16){
     alert(event.keyCode);
     }
     else{
     alert("Mach was");
     }
     }
    
     -->
     </script>
    
    </head>
    
    <body>
    
    <form action="" method="POST">
    
    <input type="text" onkeyup="handleKeyUp()" />
    
    </form>
    
    </body>
    
    </html>
    Wenn ich die Seite aufrufe und zum Beispiel ein "a" in die Textbox tippe, erwarte ich zwei Alerts: "handleKeyUp" und "Mach was".

    Im Firefox erscheint leider nur das erste Alert.

    Vielleicht habe ich Tomaten aus den Augen. Bei google finde ich etliche Einträge wie "Hmm. Ich hab da mal nen Plugin installiert" oder "Javascript funktioniert nach Update nicht mehr". Daher folgender Hinweis:
    - Zunächst funktionierte das Script (scheinbar)
    - Der Computer an dem ich entwickle hatte keine Verbindung zum Internet
    - Es wurden keine Plugins installiert
    - FF wurde nicht upgedatet
    - Auch ansonsten wurde das System nicht verändert.

    Ich bin für jede Hilfe dankbar.

    Viele Grüße
    MaxDev
     
  2. 22. Oktober 2010
    AW: Funktion läuft im IE8 / nicht in Firefox (3.6.11)

    Ja, beim FF läuft das etwas anders.
    Deklarier deine Funktion mal folgendermaßen:

    Code:
    function handleKeyUp(e)
    Und check, ob e valid ist, wenn nicht, dann setzt du e als event. Danach kannst du dann mit e arbeiten.

    Also:

    Code:
    function handleKeyUp(e){
     if(!e) {
     e = event;
     }
    
     if(e.keyCode ..
     ...
    }
     
  3. 22. Oktober 2010
    AW: Funktion läuft im IE8 / nicht in Firefox (3.6.11)

    Yeah, that did the trick !

    HTML:
    <html>
    
    <head>
     <title>Fehlersuche</title>
    
     <script type="text/javascript">
     <!--
    
     function handleKeyUp(e){
    
     if(e != null){
     if(e.keyCode == 40){ 
     alert(event.keyCode);
     }
     else if(e.keyCode == 38){
     alert(e.keyCode);
     }
     else if(e.keyCode == 13){
     alert(e.keyCode);
     }
     else if(e.keyCode == 37 || e.keyCode == 39 || e.keyCode == 16){
     alert(e.keyCode);
     }
     else{
     alert("Mach was");
     }
     }
     }
    
     -->
     </script>
    
    </head>
    
    <body>
    
    <form action="" method="POST">
    
    <input type="text" onkeyup="handleKeyUp(event)" />
    
    </form>
    
    </body>
    
    </html>
    Vielen herzlichen Dank für die schnelle Antwort !

    BG MaxDev
     
  4. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.