Firefox Kompatibilitetsproblem.

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Firefox Kompatibilitetsproblem.

    Hallo,

    ich schreibe momentan einen auf Ajax basierenden Chat zum üben und habe gerade Probleme mit der Darstellung bei Firefox.

    Problem 1:
    Eine DIV Box mit den CSS Einstellungen:

    Quellcode

    1. border-style:solid;
    2. border-color:#000000;
    3. border-width:1px;
    4. height:100%;
    5. word-wrap: break-word;
    6. overflow-y: auto;

    lässt sich in allen WebBrowsern prima durchsetzen, nur Firefox ignoriert es und dehnt mir die DIV Box komplett aus, so dass der Body gescrollt wird, und nicht die div box.

    Problem 2:
    Zum Absenden der Nachricht verwende ich unter anderem folgende Funktion:

    Quellcode

    1. function InputEnter()
    2. {
    3. if(event.keyCode == 13)
    4. {
    5. if(!event.shiftKey)
    6. {
    7. if($('message_input').value.length < 6)
    8. {
    9. alert("Die eingetragene Nachricht ist zu kurz!");
    10. }
    11. else
    12. {
    13. SendMessage();
    14. }
    15. }
    16. }
    17. }
    Alles anzeigen

    wieder funktioniert es bei allen Webbrowsern. (Google Chrome, Internet Explorer, Opera, Safari) nur Firefox sagt wiedermal NÖ. Durch Firebug habe ich erfahren, dass das Problem irgentetwas mit event.keyCode == 13 zutuen hat.

    Leider bin ich ein Anfänger in Sache Webanwendungen entwickelt und habe deshalb nicht mal einen Ansatz im Kopf wie man es lösen könnte.
  • Zu deinem height-Problem:
    gn-webdesign.de/css-tutorials/css-div-height-100.html

    Zu deinem JavaScript-Problem:

    Vermutlich rufst du die Funktion nbei einem onKey-Event auf, übergib da mal das Event:

    Quellcode

    1. <input onKeyPress="InputEnter()" />

    und deine Funktion:

    Quellcode

    1. function InputEnter(ev) {
    2. if(!ev) ev = window.event;
    3. var keyCode = ev.keyCode || ev.which;
    4. if (keyCode == 13)...
    5. }


    Die Browser gehn mit Events unterschiedlich um, deshalb die Weiche am Anfang. Hab den Code nicht getestet, aber via Google findest du da 100te von Problemlösungen - unter anderem diese.
  • Lösung 1 hat funktioniert.

    Lösung 2 hat jedoch keine Veränderung gezeigt.

    Quellcode

    1. function InputEnter(ev)
    2. {
    3. if(!ev) ev = window.event;
    4. var keyCode = ev.keyCode || ev.which;
    5. if(keyCode == 13)
    6. {
    7. alert("Bis hier kommt er schonmal."); //Zu Testzwecken, der Ablauf kommt bei Firefox jedoch nicht bis hierhin. Bei jedem anderem Browser schon.
    8. if(!event.shiftKey)
    9. {
    10. if($('message_input').value.length < 6)
    11. {
    12. alert('Die eingetragene Nachricht ist zu kurz!');
    13. }
    14. else
    15. {
    16. SendMessage();
    17. }
    18. }
    19. }
    20. }
    Alles anzeigen

    Quellcode

    1. <textarea id="message_input" cols="150" rows="6" onKeyPress="InputEnter();"></textarea>


    Ich habe in google gestern auch ziemlich viele gefunden, jedoch funktionierte bisher keiner auch nur ansatzweise. Entweder ich mache/oder habe etwas falsch gemacht oder an meinem firefox hat sich irgentwas verändert.

    Bei der 2ten Lösung sagt der Firebug jetzt das ev nicht deklariert wurde, dabei ist es doch ganz klar im Parameter zu sehen.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von ViktorM ()

  • Probiers mal mit onkeypress statt onKeyPress. Letzteres ist nicht XML/XHTML konform.
    Checke deinen kompletten HTML Code am besten mal mit dem w3c validator.

    Ansonsten kannst du es auch mal mit JavaScript probieren.

    Quellcode

    1. function InputEnter(event) {
    2. ...
    3. }
    4. document.getElementById('message_input').onkeypress = InputEnter;


    PS: Die Referenzierung per ID klappt natürlich erst wenn die ID bekannt ist.
    Wenn es weiter nicht funktioniert, poste bitte die genaue Fehlermeldung von Firebug.
  • Das hat jetzt funktioniert. Firebug sagt, der Firefox meckert jetzt nur noch bei

    event is not defined
    [Bei diesem Fehler anhalten] if(!event.shiftKey)

    #edit gelöst:
    Lösung:

    Quellcode

    1. $('message_input').onkeypress = InputEnter;
    2. function InputEnter(ev)
    3. {
    4. if(!ev) ev = window.event;
    5. var keyCode = ev.keyCode || ev.which;
    6. if(keyCode == 13)
    7. {
    8. alert("Hi");
    9. if(!keyCode.shiftKey)
    10. {
    11. SendMessage();
    12. }
    13. }
    14. }
    Alles anzeigen