Ajax - Wo steckt der Fehler?

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

  • Ajax - Wo steckt der Fehler?

    So, hier ist ein Source, welcher ausschließlich mit Opera funktioniert. Meine Frage aber ist: Warum funktioniert er nur mit Opera?

    BTW, die Funktion outline() dient nur der Navigation. Kann also mißachtet werden.

    Quellcode

    1. [...] <script type="text/javascript">
    2. var request = null;
    3. window.onload = function(){
    4. document.getElementById("dl_anzeigen").onclick = function(){
    5. request = createRequest();
    6. request.onreadystatechange = complete;
    7. request.open("GET", "content/downloads.php", true);
    8. request.send(null);
    9. }
    10. }
    11. function createRequest(){
    12. try {
    13. var request = new XMLHttpRequest();
    14. }catch(ex){
    15. debug("kein XMLHttpRequest")
    16. try {
    17. var request = new ActiveXObject("MSXML2.XMLHTTP");
    18. }catch(ex){
    19. debug("kein MSXML2.XMLHTTP");
    20. var request = new ActiveXObject("Microsoft.XMLHTTP");
    21. debug("Microsoft.XMLHTTP");
    22. }
    23. }
    24. return request;
    25. }
    26. function complete(){
    27. var out = null;
    28. switch(request.readyState){
    29. case 0:
    30. case 1:
    31. case 2:
    32. case 3:
    33. debug("Status: "+request.readyState); break;
    34. case 4:
    35. out = request.responseText;break;
    36. }
    37. document.getElementById("content").innerHTML = out;
    38. }
    39. function debug(out){
    40. var li = document.createElement("li");
    41. var txt = document.createTextNode(out);
    42. li.appendChild(txt);
    43. document.getElementById("foo").appendChild(li);
    44. }
    45. function outline(id){
    46. if(document.getElementById(id).style.display == 'none'){
    47. document.getElementById(id).style.display = 'block';
    48. }
    49. else {
    50. document.getElementById(id).style.display = 'none';
    51. }
    52. }
    53. </script>
    54. </head>
    55. <body onload="laden()">
    56. <div id="main_container">
    57. <div id="head_container"><div id="head"><p>head</p></div></div>
    58. <div id="navi_container"><div id="navi">
    59. <p><a href="#" onclick="outline('dl'); return false;"><b>Rezepte</b></a><br />
    60. <span id="dl" style="display:none">
    61. <ul>
    62. <li id="dl_anzeigen">Anzeigen</li>
    63. <li>Suchen</li>
    64. </ul>
    65. </span>
    66. <p><a href="#" onclick="outline('Boardtreffen'); return false;"><b>Boardtreffen</b></a><br />
    67. <span id="Boardtreffen" style="display:none">
    68. <ul>
    69. <li>Webseite</li>
    70. </ul>
    71. </span>
    72. </div></div>
    73. <div id="content_container"><div id="content"><p>content</p></div></div>
    74. <div id="foo_container"><div id="foo"><p>footer</p></div></div>
    75. </div>
    76. </body>
    77. [...]
    Alles anzeigen
  • seit ich zu ganz frühen zeiten problemen mit dem "MSXML2.XMLHTTP" hatte, benutze ich den code aus dem wiki..

    versuch mal den:

    Quellcode

    1. function createRequest(){
    2. try {
    3. req = window.XMLHttpRequest?new XMLHttpRequest():
    4. new ActiveXObject("Microsoft.XMLHTTP");
    5. } catch (e) {
    6. //Kein AJAX Support
    7. }
    8. return request;
    9. }


    achso, ich glaub der IE hatte in frühen versionen mal probleme mit createelement
    da es nur der debugger ist, kannst du es ja erstmal mit meinem createRequest probieren und danach mal ohne Debugger

    andere auffälligkeiten sehe ich nicht