AJAX Hilfe: Tastendruck Event

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

  • AJAX Hilfe: Tastendruck Event

    Hallo,ich habe ein Problem mit einer einfachen AJAX Anwendung:
    http://standinflames.de/Ajax/
    Egal welche Taste ich drücke,die anwendung reagiert nicht.
    Hier der Sourcecode:

    Index.html

    Quellcode

    1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    2. <html xmlns="http://www.w3.org/1999/xhtml">
    3. <head>
    4. <script language="javascript" src="eventnc1.js"></script>
    5. <script language="javascript">
    6. window.onkeypress=taste;
    7. </script>
    8. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    9. <title>Unbenanntes Dokument</title>
    10. <style type="text/css">
    11. <!--
    12. body {
    13. background-color: #666666;
    14. }
    15. </style>
    16. <div align="center">
    17. <img src="loader.gif" />
    18. <h1>Drücken Sie eine Taste!</h1>
    19. <span id="antwort"></span>
    20. </div>
    21. </body>
    22. </html>
    Alles anzeigen

    eventnc1.js


    var resObjekt=null;
    function taste(ev){
    sndReq(ev.which);
    }
    function erzXMLHttpRequest(){
    var resObjekt=null;
    try{
    resObjekt=new ActiveXObject("Mircosoft.XMLHTTP");
    }
    catch(Error){
    try{
    resObjekt=new ActiveXObject("MSXML2.XMLHTTP");
    }
    catch(Error){
    try{
    resObjekt=new XMLHttpRequest();
    }
    catch(Error){
    alert(
    "Erzeugung des XMLHttpRequest-Objektes nicht möglich");
    }
    }
    }
    return resObjekt;
    }
    function sndReq(drueck){
    resObjekt.open(get,eventnc1.php?welcheTaste=+drueck,true);
    resObjekt.onreadystatechange=handleResponse;
    resObjekt.send(null);
    }
    function handleResponse(){
    if(resObjekt.readyState==4){
    document.getElementById("antwort").innerHTML=
    resObjekt.responseText;
    }
    }
    resObjekt=erzXMLHttpRequestObject();

    eventnc1.php

    Quellcode

    1. <?
    2. echo"Sie haben folgende Taste gedrückt:".
    3. $_REQUEST['welcheTaste']
    4. ?>
  • wow, welcher editor exportiert dir die bbcode-color-tags...

    an der semantik des codes hab ich mich noch nicht vergriffen, aber, wenn du schon xhtml verwendest, dann mache aus
    <script language="javascript" ...
    ein <script type="text/javascript" ...

    außerdem hast du vergessen, den css kommentar zu schließen

    Quellcode

    1. <style type="text/css">
    2. <!-- ... //-->
    3. </style>


    dann könnte es klappen
  • der editor is nur mit flock das bbcode plugin,der kann xml und java färben :D
    mitterlweile bin ich dank ner anderen community weiter:

    ich würde eher via DOM vorgehen:

    var divElement = document.getElementById("antwort");
    while( null != divElement.firstChild )
    {
    divElement.removeChild(divElement.firstChild);
    }
    divElement.appendChild(document.createTextNode(resObjekt.responseText));

    neuer code:

    Quellcode

    1. var resObjekt=null;
    2. function taste(ev){
    3. sndReq(ev.which);
    4. }
    5. function createXMLHttpRequest(){
    6. var resObjekt=null;
    7. try{
    8. resObjekt=new ActiveXObject("Mircosoft.XMLHTTP");
    9. }
    10. catch(Error){
    11. try{
    12. resObjekt=new ActiveXObject("MSXML2.XMLHTTP");
    13. }
    14. catch(Error){
    15. try{
    16. resObjekt=new XMLHttpRequest();
    17. }
    18. catch(Error){
    19. alert(
    20. "Erzeugung des XMLHttpRequest-Objektes nicht möglich");
    21. }
    22. }
    23. }
    24. return resObjekt;
    25. }
    26. function sndReq(drueck){
    27. resObjekt.open('get','eventnc1.php?welcheTaste='+drueck,true);
    28. resObjekt.onreadystatechange=handleResponse;
    29. resObjekt.send(null);
    30. }
    31. function handleResponse(){
    32. if(resObjekt.readyState==4){
    33. var divElement = document.getElementById("antwort");
    34. while( null != divElement.firstChild )
    35. {
    36. divElement.removeChild(divElement.firstChild);
    37. }
    38. divElement.appendChild(document.createTextNode(resObjekt.responseText));
    39. }
    40. }
    41. resObjekt=createXMLHttpRequest()();
    Alles anzeigen


    index.html

    HTML-Quellcode

    1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    2. <html xmlns="http://www.w3.org/1999/xhtml">
    3. <head>
    4. <script language="javascript" src="eventnc1.js"></script>
    5. <script language="javascript">
    6. window.onkeypress=taste;
    7. </script>
    8. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    9. <title>AJAX Tastencode auslesen</title>
    10. <style type="text/css">
    11. <!--
    12. body {
    13. background-color: #666666;
    14. }
    15. </style>
    16. </head>
    17. <body>
    18. <div align="center">
    19. <img src="loader.gif" />
    20. <h1>Drücken Sie eine Taste!</h1>
    21. <span id="antwort"></span>
    22. </div>
    23. </body>
    24. </html>
    Alles anzeigen

    eventnc1.php

    Quellcode

    1. <?
    2. echo"Sie haben folgende Taste gedrückt:".
    3. $_REQUEST['welcheTaste']
    4. ?>
  • problem gelöst!
    hier der richtige code:
    javadatei:

    Quellcode

    1. var resObjekt=null;
    2. function taste(ev){
    3. sndReq(ev.which);
    4. }
    5. function erzXMLHttpRequestObject()
    6. {
    7. if (window.XMLHttpRequest) {
    8. return new XMLHttpRequest();
    9. }
    10. else {
    11. try {
    12. return new ActiveXObject("Msxml2.XMLHTTP");
    13. }
    14. catch (e) {
    15. }
    16. }
    17. return null;
    18. }
    19. function sndReq(drueck){
    20. resObjekt = erzXMLHttpRequestObject();
    21. resObjekt.open('get','eventnc1.php?welcheTaste='+drueck,true);
    22. resObjekt.onreadystatechange=handleResponse;
    23. resObjekt.send(null);
    24. }
    25. function handleResponse(){
    26. if(resObjekt.readyState==4){
    27. var divElement = document.getElementById("antwort");
    28. while( null != divElement.firstChild )
    29. {
    30. divElement.removeChild(divElement.firstChild);
    31. }
    32. divElement.appendChild(document.createTextNode(resObjekt.responseText));
    33. }
    34. }
    Alles anzeigen

    html:

    Quellcode

    1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    2. <html xmlns="http://www.w3.org/1999/xhtml">
    3. <head>
    4. <script language="javascript" src="eventnc1.js"></script>
    5. <script language="javascript">
    6. window.onkeypress=taste;
    7. </script>
    8. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    9. <title>AJAX Tastencode auslesen</title>
    10. <style type="text/css">
    11. <!--
    12. body {
    13. background-color: #666666;
    14. }
    15. </style>
    16. </head>
    17. <body>
    18. <div align="center">
    19. <img src="loader.gif" />
    20. <h1>Drücken Sie eine Taste!</h1>
    21. <span id="antwort"></span>
    22. </div>
    23. </body>
    24. </html>
    Alles anzeigen

    php:

    Quellcode

    1. <?
    2. echo"Sie haben folgende Taste gedrueckt:".
    3. $_REQUEST['welcheTaste']
    4. ?>



    die dateinaem sind die vom ersten post!
  • Ich wollt mal sagen wenn ich eine Taste schnell hintereinander drücke kommt dieser Text:
    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <HTML><HEAD> <TITLE>403 Forbidden</TITLE> </HEAD><BODY> <H1>Forbidden</H1> You don't have permission to access /Ajax/eventnc1.php on this server.<P> <HR> <ADDRESS>Apache/1.3.29 Server at standinflames.de Port 80</ADDRESS> </BODY></HTML>