kostenloser Webspace werbefrei: lima-city


JS-Problem mit Chat

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    c-chat

    c-chat hat kostenlosen Webspace.

    Ich habe ein kleines Problem. Ich plane einen kleinen Chat. Leider gibt es im Moment ein Problem, dass ich mir leider nicht erklären kann. Wahrscheinlich bin ich nur mal wieder blind. Hier ist der Link: http://c-chat.lima-city.de/1.1/index.html

    Wenn man etwas zum schreiben einträgt, dann kommt das auch an, also wird gespeichert. Das Lesen funktioniert aber nicht. Die Fehlerkonsole spuckt zu Zeile 99 folgende Fehlermeldung aus: "document.hilfsform is undefined". Der Quellcode ist auf der Seite zu finden, die Datei endet auf .html, beinhaltet also kein PHP.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. naja...da die seite weder html, body noch head tags beinhaltet und auch keine doctype-deklaration würde ich mir über den chat erstmal keine gedanken machen, und erstmal die seite in einen w3c-konformen zustand bringen.

    wenn du glück hast, löst das auch schon das problem, da javascript unter umständen erst auf das document-attribut zugreifen kann, wenn ein <body> definiert ist

    mfg
  4. e********l

    Also bei mir funktioniert da überhaupt nichts. Und wo ist das HTML? Wenn man den Code anschaut ist da nur ein kleiner JS Block.
  5. Autor dieses Themas

    c-chat

    c-chat hat kostenlosen Webspace.

    Oh, da habe ich etwas vergessen zu erklären. Diese Datei kommt mitten in eine andere Datei rein, desshalb ist dort kein Header und Body.

    Und das wenige HTML, das da drinne ist ist unter dem HTML-Block.
  6. e********l

    Wenn du JS richtig und ohne Fehler überall nutzen willst benötigt die Seite die den Chat beinhält auch ein vollständiges HTML Document. Und über deine Chat Datei sollte nur Text bzw. JSON Elemente daher kommen.
  7. Autor dieses Themas

    c-chat

    c-chat hat kostenlosen Webspace.

    Daran kann es nicht liegen. Ich habe jetzt header und body eingezeichnet, und es geht nicht. Einzigster Unterschied: jetzt ist es nicht Zeile 99, sondern 101, weil ich 2 Zeilen nach unten bin.
  8. e********l

    Naja, ich würde ja gerne helfen, aber wenn ich einen Text schreiben will, dann feuert Firebug sofort los. Und diese ganzen leerzeilen solltest du auch dringend entfernen. Das würde deinen Code um ein vielfaches lesbarer machen.
  9. Autor dieses Themas

    c-chat

    c-chat hat kostenlosen Webspace.

    Die ganzen Leerzeichen sind dazu da, um Abschnitte des Codes eindeutig zu trennen.
  10. e********l

    c-chat schrieb:
    Die ganzen Leerzeichen sind dazu da, um Abschnitte des Codes eindeutig zu trennen.

    Du willst mir also weiß machen das 20 Leerzeilen, Zeilen!, zwischen zwei einzelnen Blöcken/Zeilen die Lesbarkeit verbessern? haha, ich lach mich schlapp.
  11. Autor dieses Themas

    c-chat

    c-chat hat kostenlosen Webspace.

    evil-devil schrieb:
    c-chat schrieb:
    Die ganzen Leerzeichen sind dazu da, um Abschnitte des Codes eindeutig zu trennen.

    Du willst mir also weiß machen das 20 Leerzeilen, Zeilen!, zwischen zwei einzelnen Blöcken/Zeilen die Lesbarkeit verbessern? haha, ich lach mich schlapp.

    Das habe ich jetzt so gemacht, damit ich unterscheiden kann, was sicher funktioniert und was nicht. Ich mache den Code jetzt nochmal so, wie er allgemein üblich ist.

    <html>
        <head>
    
    <script type="text/javascript">
    
    		function auslesen(url) {
    
    		// das ganze catch-zeugs noch hin schreiben
    
    		if (window.XMLHttpRequest) {              
    
    			req=new XMLHttpRequest();              
    
    		} else {                                  
    
    			req=new ActiveXObject("Microsoft.XMLHTTP");
    
    		}
    
    		if (req) {
    
    			req.open("GET", url, false);                             
    
    			req.send(null);
    
    			return req.responseText;                                         
    
    		} else {
    
    			return '0';
    
    			}                                             
    
    		} // funktionsende
    
    
    
    
    
    function chat_aktualisieren() {
    document.getElementById('chat_text').innerHTML = auslesen('http://c-chat.lima-city.de/1.1/text.php');
    } // funktionsende
    
    
    
    
    function id_vergleich() {
    var aktuelle_id_intern = document.hilfsform.aktuelle_id.value;
    var aktuelle_id = auslesen('http://c-chat.lima-city.de/1.1/id.txt');
    
    if(aktuelle_id > aktuelle_id_intern) {
    document.hilfsform.aktuelle_id.value = aktuelle_id;
    chat_aktualisieren();
    sound();
    }
    
    window.setTimeout("id_vergleich()", 500);
    } // funktionsende
    
    
    
    
    function senden() {
    var username = 'example';
    var text = document.sendform.text.value;
    
    auslesen('http://c-chat.lima-city.de/1.1/schreiben.php?username=' + username + '&text=' + text);
    document.sendform.text.value = '';
    
    document.sendform.text.focus();
    document.sendform.text.select();
    sound();
    } // funktionsende
    
    
    
    
    function sound () {
    
    document.getElementById('sound').innerHTML = '<object classid="CLSID:D27CDB6E-AE6D-11cf-96B8-444553540000" width="0" height="0" codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=4,0,0,0"><param name="movie" value="sound.swf"><param name="quality" value="high"><param name="scale" value="exactfit"><param name="menu" value="true"><param name="bgcolor" value="#000040"><embed src="sound.swf" quality="high" scale="exactfit" menu="false" bgcolor="#000000" width="0" height="0" swLiveConnect="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash"></embed></object>';
    } // funktionsende
    
    
    
    
    </script>
    
        </head>
        <body onload="id_vergleich()">
    
            <div id="sound"></div>
    
    <div id="chat_text" name="chat_text" style="border: 1px solid rgb(204, 204, 204); padding: 0px; background: rgb(255, 255, 255) url(hg.png) repeat-x scroll center top; overflow: scroll; position: fixed; bottom: 45px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; height: 150px; width: 250px; left: 10px;">loadin..</div>
    
    <div id="chat_schreiben" name="chat_schreiben" style="border: 1px solid rgb(204, 204, 204); padding: 0px; background: rgb(255, 255, 255) url(hg.png) repeat-x scroll center top; position: fixed; bottom: 10px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; height: 28px; width: 250px; left: 10px;">
    
    <form name="sendform" action="Javascript: senden()">
    <input type="text" name="text" style="height:98%; width: 90%;" />
    <input type="submit" value="" style="height:0px; width: 0px;" />
    </form>
    </div>
    
    
    <form name="hilfsform" id="hilfsform" action="">
    <input type="hidden" name="aktuelle_id" value="1" />
    </form>
    
    
    
        </body>
    </html>


    Kannst du mir jetzt helfen?
  12. f************r

    Hi,

    das Script, welches die Seite ausgibt, ist anders, als das, das du postest.
    Am Ende im Script wird die Funktion id_vergleichen aufgerufen.
    Das produziert den Fehler!
    Du musst den Funktionsaufruf in den body ins Attribus onLoad schreiben!

    MfG

    Steffen
  13. c-chat schrieb:
    Kannst du mir jetzt helfen?


    er vlcht nich aber ich.
    du rufst die funktion id_vergleichen(); gleich nach der definition des scriptes auf. zu diesem zeitpunkt existiert die hilfsform allerdings noch nicht, da html von oben nach unten interpretiert wird. wenn du also die funktion aufrufst steht grade mal der head der seite beim benutzer (bzw in dessen browser) bereit.

    deswegen den aufruf der funktion ins onload event vom body packen, dann sollte es gehen

    mfg
  14. Autor dieses Themas

    c-chat

    c-chat hat kostenlosen Webspace.

    syberpsace schrieb:
    c-chat schrieb:
    Kannst du mir jetzt helfen?


    er vlcht nich aber ich.
    du rufst die funktion id_vergleichen(); gleich nach der definition des scriptes auf. zu diesem zeitpunkt existiert die hilfsform allerdings noch nicht, da html von oben nach unten interpretiert wird. wenn du also die funktion aufrufst steht grade mal der head der seite beim benutzer (bzw in dessen browser) bereit.

    deswegen den aufruf der funktion ins onload event vom body packen, dann sollte es gehen

    mfg

    Danke! Da ich header und body nicht verwenden kann, weil es mitten in eine Datei kommt, habe ich ganz am Ende der Datei noch
    <script type="text/javascript">
    id_vergleich();
    
    </script>
    geschrieben, und es funktioniert! Vielen Dank!
  15. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!