Manchmal staunt man nicht schlecht. So schneidet Firefox als einziger beim Auslesen der nodeValue eines xml-Objektes in Javascript einfach nach 4096 Bytes ab. So ist das eigentlich nicht spezifiziert, aber die Jungs & Maedels von Mozilla treiben das bereits seit 2003 so, wie man in einem Bug Report nachlesen kann. Danke fuer die grauen Haare!! Hier ist ein moeglicher Workaround in Javascript-Literal-Schreibweise:
// workaround for firefox which splits nodeValue in packets of 4096 bytes
// see https://bugzilla.mozilla.org/show_bug.cgi?id=194231
getXmlNodeValueWithout4KBLimit: function(xmlTag) {
if(xmlTag.firstChild.textContent && xmlTag.normalize) {
xmlTag.normalize(xmlTag.firstChild);
content=xmlTag.firstChild.textContent;
} else if(xmlTag.firstChild.nodeValue) {
content=xmlTag.firstChild.nodeValue;
} else {
content=null;
}
return content;
}
By the way ist es ein ziemliches Gefrickel mit Javascript XML zu parsen. Nicht nur dass es wieder jeder Browser (insbes. IE) anders haben moechte, nein, es ist auch noch recht langsam. Hier bietet sich im Zweifelsfalle an JSON zu benutzen. Z.B. so:
var jsonContainer =
[
{
"name" : "name1",
"icon" : "img/muetze.gif"
},
{
"name" : "name2",
"icon" : "img/glatze.gif"
}
];
Der Zugriff erfolgt dann bspw. mit jsonContainer[1].icon.
Weiss jemand ob es eine utf8-decode Funktion in Javascript NATIV gibt? Ich fand nur Selbstgefrickeltes in Form eines zeichenweisen Absuchens und Ersetzes -> vieeel zu langsam..
Donnerstag, 10. April 2008
Workaround/Loesung fuer Firefox nodeValue 4 KB (4096 Bytes) Limit BUG
Dienstag, 11. März 2008
Javascript Debugger fuer IE
Standardmaessig bietet der IE nicht besonders viele Detailinfos bei einem Javascript Error. Dem kann abgeholfen werden:
http://www.jonathanboutelle.com/mt/archives/2006/01/howto_debug_jav.html
http://www.jonathanboutelle.com/mt/archives/2006/01/howto_debug_jav.html
Dienstag, 25. Juli 2006
Ajax: Einfachste xmlHttpObjekt Initialisierung
Die meiner Meinung nach einfachste Initialisierung eines xmlHttpObjektes in Javascript geht so:
var request = (window.XMLHttpRequest) ? new XMLHttpRequest() : ((window.ActiveXObject) ? new ActiveXObject('Microsoft.XMLHTTP') : false);
Viele Buecher, Foren, Tutorials etc. uebertreiben es an dieser Stelle mit einem masslos ewig langen Gebimsel von try catch Aufrufen..
var request = (window.XMLHttpRequest) ? new XMLHttpRequest() : ((window.ActiveXObject) ? new ActiveXObject('Microsoft.XMLHTTP') : false);
Viele Buecher, Foren, Tutorials etc. uebertreiben es an dieser Stelle mit einem masslos ewig langen Gebimsel von try catch Aufrufen..
(Seite 1 von 2, insgesamt 6 Einträge)
nächste Seite
Letzte Kommentare