Chat funktioniert nur unter FF. Warum?

Status
Nicht offen für weitere Antworten.
K

Kerwindena

Gast
Hallo ich habe vor Kurzem einen Chat geschrieben. Als ich diesen fertiggestellt hatte musste ich feststellen, dass die Seite, die normalerweise die einzelnen Einträge ausgibt im IE nur eine schwarze Seite ist... Das Java-Protokoll im IE zeigt keine fehler an... Wenn mir jemand gerne helfen möchte...

Hier sind die links zu den relevanten dateien
Chat
siblingsofblood.si.funpic.de/chat2.php?table=shout
Ausgabe-Seite
siblingsofblood.si.funpic.de/view.php?table=shout&all=false
XML-dokument
siblingsofblood.si.funpic.de/view.xml.php?table=shout&all=true
Java-Script
siblingsofblood.si.funpic.de/chat.js

Und hier noch einmal das Java-Script:
Code:
             var req = null;
              var reqdata = null;
              var aktual_id = null;

//*****************************************
//*****************************************
//*******
//*****************************************
//*****************************************
function output(base){  
var id = base.getElementsByTagName("id")[0].firstChild.nodeValue;
var name = base.getElementsByTagName("name")[0].firstChild.nodeValue;
var logged = base.getElementsByTagName("logged")[0].firstChild.nodeValue;
var ip = base.getElementsByTagName("ip")[0].firstChild.nodeValue;
var date = base.getElementsByTagName("date")[0].firstChild.nodeValue;
var time = base.getElementsByTagName("time")[0].firstChild.nodeValue;
var entries = base.getElementsByTagName("entries")[0].firstChild.nodeValue;
aktual_id = id;
var TR = document.createElement("tr");
var ZEILE = document.getElementsByTagName("table")[0].appendChild(TR);
var TD = ZEILE.insertCell("0");
var B1 = document.createElement("b");
var B2 = document.createElement("b");
var BEITRAEGE = TD.appendChild(B1);
BEITRAEGE.title = "Beiträge: " + entries;
var USER = document.createTextNode(name + " ");
BEITRAEGE.appendChild(USER);
var ZEIT = TD.appendChild(B2);
ZEIT.title = date;
var DATUM = document.createTextNode("(" + time +  "): ");
ZEIT.appendChild(DATUM);
for(var i = 0; i< base.getElementsByTagName("text")[0].childNodes.length; i++)
{
var text = base.getElementsByTagName("text")[0].childNodes[i].nodeValue
var TEXT = document.createTextNode(text);
TD.appendChild(TEXT);
if(base.getElementsByTagName("text")[0].childNodes[i].tagName == "br"){
var TEXT = document.createElement("br");
TD.appendChild(TEXT);
}
if(base.getElementsByTagName("text")[0].childNodes[i].tagName == "img"){
var TEXT = document.createElement("img");
var IMG = TD.appendChild(TEXT);
IMG.src = base.getElementsByTagName("text")[0].childNodes[i].attributes[0].nodeValue;
}
window.scrollTo(0,99999);
}
return true;
}
//*****************************************
//*****************************************
//*******
//*****************************************
//*****************************************
function contend_print(){           
                switch(req.readyState) {
                    case 4:
                        if(req.status!=200) {
                            alert("Fehler:"+req.status); 
                        }else{
reqdata = req.responseXML;
for(var i = 0; i< reqdata.getElementsByTagName("data").length; i++)
{
output(reqdata.getElementsByTagName("data")[i]);
}
                        }
                    break;
            
                    default:
                        return false;
                    break;     
                }
            }   
//*****************************************
//*****************************************
//*******
//*****************************************
//*****************************************         
function contend(){         
                 //erstellen des requests
                 
                try{
                    req = new XMLHttpRequest();
                }
                catch (e){
                    try{
                        req = new ActiveXObject("Msxml2.XMLHTTP");
                    } 
                    catch (e){
                        try{
                            req = new ActiveXObject("Microsoft.XMLHTTP");
                        } 
                        catch (failed){
                            req = null;
                        }
                    }  
                }

                if (req == null) alert("Error creating request object!");     
                  var url = 'view.xml.php?table=' + document.getElementById('table').value + '&all=' + document.getElementById('all').value;
                  req.open("GET", url, true);

                //Beim abschliessen des request wird diese Funktion ausgeführt
                req.onreadystatechange = contend_print;
  
                  req.setRequestHeader("Content-Type",
                                      "application/x-www-form-urlencoded");
                req.send(null);
window.setInterval("contend_update()", 3000);
            }
//*****************************************
//*****************************************
//*******
//*****************************************
//*****************************************
function contend_update_print(){            
                switch(req.readyState) {
                    case 4:
                        if(req.status!=200) {
                            alert("Fehler:"+req.status); 
                        }else{
reqdata = req.responseXML;
for(var i = 0; i< reqdata.getElementsByTagName("data").length; i++)
{
output(reqdata.getElementsByTagName("data")[i]);
}
                        }
                    break;
            
                    default:
                        return false;
                    break;     
                }
            }
//*****************************************
//*****************************************
//*******
//*****************************************
//*****************************************
function contend_update(){         
                 //erstellen des requests
                 
                try{
                    req = new XMLHttpRequest();
                }
                catch (e){
                    try{
                        req = new ActiveXObject("Msxml2.XMLHTTP");
                    } 
                    catch (e){
                        try{
                            req = new ActiveXObject("Microsoft.XMLHTTP");
                        } 
                        catch (failed){
                            req = null;
                        }
                    }  
                }

                if (req == null) alert("Error creating request object!");     
                  var url = 'view.xml.php?table=' + document.getElementById('table').value + '&id=' + aktual_id;
                  req.open("GET", url, true);

                //Beim abschliessen des request wird diese Funktion ausgeführt
                req.onreadystatechange = contend_update_print;
  
                  req.setRequestHeader("Content-Type",
                                      "application/x-www-form-urlencoded");
                req.send(null);
            }

Ich bedanke mich schon einmal im Voraus.
 

EOB

Top Contributor
nur son ganz dummer tip: java script ausgeschaltet? wie gesagt, nur ne vermutung...

grüße
 
K

Kerwindena

Gast
Danke für die schnelle Antwort, aber javascript ist definitiv eingeschaltet... Ich bin dem ganzen mal so ein wenig näher auf den grund gegangen und habe herausgefunden, dass sich der fehler in Folgender funktion befinden muss:
Code:
function output(base){  
var id = base.getElementsByTagName("id")[0].firstChild.nodeValue;
var name = base.getElementsByTagName("name")[0].firstChild.nodeValue;
var logged = base.getElementsByTagName("logged")[0].firstChild.nodeValue;
var ip = base.getElementsByTagName("ip")[0].firstChild.nodeValue;
var date = base.getElementsByTagName("date")[0].firstChild.nodeValue;
var time = base.getElementsByTagName("time")[0].firstChild.nodeValue;
var entries = base.getElementsByTagName("entries")[0].firstChild.nodeValue;
aktual_id = id;
var BR = document.createElement("br");
var TR = document.createElement("tr");
var ZEILE = document.getElementsByTagName("table")[0].appendChild(TR);
var TD = ZEILE.insertCell("0");
var B1 = document.createElement("b");
var B2 = document.createElement("b");
var BEITRAEGE = TD.appendChild(B1);
BEITRAEGE.title = "Beiträge: " + entries;
var USER = document.createTextNode(name + " ");
BEITRAEGE.appendChild(USER);
var ZEIT = TD.appendChild(B2);
ZEIT.title = date;
var DATUM = document.createTextNode("(" + time +  "):");
ZEIT.appendChild(DATUM);
TD.appendChild(BR);
for(var i = 0; i< base.getElementsByTagName("text")[0].childNodes.length; i++)
{
var text = base.getElementsByTagName("text")[0].childNodes[i].nodeValue
var TEXT = document.createTextNode(text);
TD.appendChild(TEXT);
if(base.getElementsByTagName("text")[0].childNodes[i].tagName == "br"){
var TEXT = document.createElement("br");
TD.appendChild(TEXT);
}
if(base.getElementsByTagName("text")[0].childNodes[i].tagName == "img"){
var img = document.createElement("img");
var IMG = TD.appendChild(img);
IMG.src = base.getElementsByTagName("text")[0].childNodes[i].attributes[0].nodeValue;
}
window.scrollTo(0,99999);
}
return true;
}

Das XML dokument wird auch im IE ohne Probleme ausgewertet, da z.B. die variabeln "text" oder "name" mit den richtigen Inhalten versehen werden. Der teil danach wird aber anscheinend vom IE falsch interpretiert. Ich hab mich auch schon ein wenig schlau gemacht und mir diverse Seiten dazu durchgelesen, dass das dom im IE anders funktionieren würde/interpretiert wird. Ich habe auch schon die methode über document.all ausprobiert... leider ohne erfolg... es wäre net, wenn mir jemand einen Tip geben könnte, wesshalb der IE das nicht hinbekommt... ich bin wirklich an verzweifeln... danke an alle, die es versuchen werden
 

lolkind

Mitglied
Code:
(var i = 0; i< base.getElementsByTagName("text")[0].childNodes.length; i++)
{
var text = base.getElementsByTagName("text")[0].childNodes[i].nodeValue
var TEXT = document.createTextNode(text);
Nur so als Vermutung, kann es sein das da ein Similikolon fehlt?
Und das dieser Fehler Firefox nichts ausmacht/korrigiert?

Gruß
 
K

Kerwindena

Gast
Hallo

@lolkind: natürlich hattest du recht, das Semikolon fehlte... Firefox hat das nicht im geringsten etwas ausgemacht, allerdings war dies nicht der Auslöser für diesen Fehler im IE... trotzdem danke für die schnelle Antwort...

@all: Ich habe versucht das Problem weiter einzuschränken und habe einige sachen ausprobiert... ich glaube, dass der IE entweder den Befehl "createElement" oder "appendChild" nicht versteht. Zur zeit probiere ich, ob ich das Problem mit "insertAdjacentHTML" in den Griff bekomme... mal sehen...
 
K

Kerwindena

Gast
schon einmal danke... bin bis jetzt leider noch nicht dazu gekommen mir den Artikel durchzulesen... aber es ist gut möglich, dass du recht hast... wenn es was neues zu dem Thema gibt, meld ich mich wieder
mfg Kerwindena
 
K

Kerwindena

Gast
Hey danke... ich hab das Problem gelöst...
Naja es hatte eher weniger damit zu tun, was ich gedacht hatte... ich Blödmann hatte nur einfach den tbody vergessen und wie ja allgemein bekannt ist, ist der IE da ein wenig überempfindlich, wenn mann ihm einfach seinen lieblingsbefehl vorenthält^^ Tut mir leid euch mit so einem Unsinn beschäftigt zu haben...^^ ich denke mal, dass es das jetzt war...
Noch einmal herzlichen dank an alle, die sich mit diesem Problem beschäftigt haben...

mfg Kerwindena
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A java chat button bauen? Angular, React, JQuery - Fragen zu JavaScript 7
Aleyna_ Einbinden von js (ts) und HTML-Datei funktioniert nicht Angular, React, JQuery - Fragen zu JavaScript 16
Lighty Math.pow funktioniert nicht innerhalb Funktion/Schleife Angular, React, JQuery - Fragen zu JavaScript 7
leix "setInterval" funktioniert nicht Angular, React, JQuery - Fragen zu JavaScript 2
P Lauftext als Java Script Mehrmals auf einer Seite abspielen funktioniert nicht Angular, React, JQuery - Fragen zu JavaScript 3
P Sweetallert funktioniert nicht im Formular Angular, React, JQuery - Fragen zu JavaScript 0
A onmouseover funktioniert nicht recht Angular, React, JQuery - Fragen zu JavaScript 9
S jQuery - Slider funktioniert nicht im Akkordeon Angular, React, JQuery - Fragen zu JavaScript 3
S Kleine JS-Funktion funktioniert im Firefox nicht wie sie sollte Angular, React, JQuery - Fragen zu JavaScript 9
K Wie funktioniert Funktionsüberladung in Javascript? Angular, React, JQuery - Fragen zu JavaScript 5
F Script funktioniert im IE aber nicht im Firefox Angular, React, JQuery - Fragen zu JavaScript 3
B Script funktioniert nach Firefox Update nicht mehr?? Angular, React, JQuery - Fragen zu JavaScript 2
G Java installiert, funktioniert aber nicht? Angular, React, JQuery - Fragen zu JavaScript 2
U Function funktioniert nur einmal Angular, React, JQuery - Fragen zu JavaScript 2
M Programm nutzt Java und funktioniert nicht mehr! Angular, React, JQuery - Fragen zu JavaScript 1
M habe java code aber etwas funktioniert nicht Angular, React, JQuery - Fragen zu JavaScript 2
E Wieso funktioniert dieses Script bei mir nicht Angular, React, JQuery - Fragen zu JavaScript 2
G Weiterleitung funktioniert nicht richtig Angular, React, JQuery - Fragen zu JavaScript 4
M Warum funktioniert der Code nur einmal im Frame? Angular, React, JQuery - Fragen zu JavaScript 2
B Bannerrotation funktioniert nicht, wer kann helfen? Angular, React, JQuery - Fragen zu JavaScript 6
C JS funktion funktioniert nicht / wird nicht aufgerufen. Angular, React, JQuery - Fragen zu JavaScript 2
S Adobe Button "Speichern unter" mit Feldvariablen und Pfad Angular, React, JQuery - Fragen zu JavaScript 2
C In Wordpress unter Custom-Js mit Javascript den ursprünglichen Code deaktivieren Angular, React, JQuery - Fragen zu JavaScript 0
B javascript-fehler in phpscript unter ie6 Angular, React, JQuery - Fragen zu JavaScript 2
T Meine Page läuft unter Windows aber nicht unter Mac Angular, React, JQuery - Fragen zu JavaScript 7
M Funktion "Speichern Unter" abschalten. Angular, React, JQuery - Fragen zu JavaScript 14

Ähnliche Java Themen

Neue Themen


Oben