überflüssige Leerzeichen unfd Zeilenumbrüche entfernen
Twilo
- javascript
Hallo,
in mein AJAX Buch von Galileo Computing steht
Um unnötige Fehler in Gecko-Browsern zu vermeiden, wird das Dokument zunächst von überflüssigen Leerzeichen und Zeilenumbrüchen befreit.
es handelt sich um folgende Zeile
dokument.body.innerHTML = dokument.body.innerHTML.replace(/[\r\n|\s]/g, '');
ich wollte diese Zeile wie folgt in mein Code verwenden
function Entfernen(element){
element.innerHTML = element.innerHTML.replace(/[\r\n|\s]/g, '');
while(0<element.childNodes.length){
var Knoten = element.firstChild;
var temp = element.removeChild(Knoten);
}
}
diese Funktion wird per onload geladen
Konqeror und Safari stürzen sofort ab, sobald die Seite aufgerufen wird
Beispielseite
wie kann ich dieses Problem beheben?
mfg
Twilo
hi,
in mein AJAX Buch von Galileo Computing steht
Um unnötige Fehler in Gecko-Browsern zu vermeiden, wird das Dokument zunächst von überflüssigen Leerzeichen und Zeilenumbrüchen befreit.
Was für Fehler?
Ich kann mir darunter höchstens eine Anspielung auf die Tatsache vorstellen, dass in Geckos (und eigentlich allen anderen Browsern außer dem IE) white space zwischen Elementen ebenfalls als Textknoten angesehen wird.
wie kann ich dieses Problem beheben?
Sein lassen?
gruß,
wahsaga
Hallo,
in mein AJAX Buch von Galileo Computing steht
Um unnötige Fehler in Gecko-Browsern zu vermeiden, wird das Dokument zunächst von überflüssigen Leerzeichen und Zeilenumbrüchen befreit.
Was für Fehler?
Ich kann mir darunter höchstens eine Anspielung auf die Tatsache vorstellen, dass in Geckos (und eigentlich allen anderen Browsern außer dem IE) white space zwischen Elementen ebenfalls als Textknoten angesehen wird.
mehr steht dazu leider nicht im Buch
wie kann ich dieses Problem beheben?
Sein lassen?
nach dem ich es auskommentiert habe funktioniert es immer noch... hm...
mfg
Twilo
Hallo,
ich wollte diese Zeile wie folgt in mein Code verwenden
function Entfernen(element){
element.innerHTML = element.innerHTML.replace(/[\r\n|\s]/g, '');
while(0<element.childNodes.length){
var Knoten = element.firstChild;
var temp = element.removeChild(Knoten);
}
}
> diese Funktion wird per onload geladen
> Konqeror und Safari stürzen sofort ab, sobald die Seite aufgerufen wird
[Beispielseite](http://test.twilo.de/zeilenumbruecheEntfernen.htm)
Mein Konqueror stürzt nicht ab. Gründe hätte er aber, wenn er nach onload das innerHTML des DIV#Text1 mit:
<tablewidth="260"><thead><tr><thcolspan="2">Standard</th></tr></thead><tbody><tr><td>lieferbarin:</td><tdclass="r">...
rendern soll.
Bist Du sicher, dass Du richtig gelesen hast?
viele Grüße
Axel
Hallo,
ich wollte diese Zeile wie folgt in mein Code verwenden
function Entfernen(element){
element.innerHTML = element.innerHTML.replace(/[\r\n|\s]/g, '');
while(0<element.childNodes.length){
var Knoten = element.firstChild;
var temp = element.removeChild(Knoten);
}
}
> > diese Funktion wird per onload geladen
> > Konqeror und Safari stürzen sofort ab, sobald die Seite aufgerufen wird
> [Beispielseite](http://test.twilo.de/zeilenumbruecheEntfernen.htm)
> Mein Konqueror stürzt nicht ab. Gründe hätte er aber, wenn er nach onload das innerHTML des DIV#Text1 mit:
welche Konqueror Version hast du?
meine Freundin verwendet Kubuntu 6.06 mit Konqueror 3.5.3
ein Bekannter verwendet Safari, da hab ich leider keine Versionsinformationen, und bei den stürzt der Browser auch sofort ab
> <tablewidth="260"><thead><tr><thcolspan="2">Standard</th></tr></thead><tbody><tr><td>lieferbarin:</td><tdclass="r">...
> rendern soll.
> Bist Du sicher, dass Du richtig gelesen hast?
ja, ich hab es so von Seite 33 abgeschrieben
> viele Grüße
>
> Axel
mfg
Twilo
Hallo,
Mein Konqueror stürzt nicht ab. Gründe hätte er aber, wenn er nach onload das innerHTML des DIV#Text1 mit:
welche Konqueror Version hast du?
... konqueror 3.3.2
... genauer, den aus dem Paket Package: kdebase (4:3.3.2-1sarge1)
Wie man sieht, unter debian stable.
viele Grüße
Axel
Hi,
Um unnötige Fehler in Gecko-Browsern zu vermeiden, wird das Dokument zunächst von überflüssigen Leerzeichen und Zeilenumbrüchen befreit.
es handelt sich um folgende Zeile
dokument.body.innerHTML = dokument.body.innerHTML.replace(/[\r\n|\s]/g, '');
Daß damit auch Pipe-Zeichen entfernt werden, ist Dir klar?
Und ist das k Absicht?
Und außerdem werden damit nicht nur überflüssige, sondern alle (also auch notwendige) Leerzeichen, Zeilenumbrüche und Pipes entfernt.
Z.B. <a href="irgendwas">test</a> wird zu <ahref="irgendwas">test</a> - womit die Elementnamen im öffnenden und schließenden Tag nicht mehr zusammenpassen ...
function Entfernen(element){
element.innerHTML = element.innerHTML.replace(/[\r\n|\s]/g, '');
while(0<element.childNodes.length){
var Knoten = element.firstChild;
var temp = element.removeChild(Knoten);
}
}
Erscheint mir reichlich ineffizient. Erstmal sämtliche Leerzeichen, Pipes und Zeilenumbrüche im Element-Inhalt entfernen, um dann sämtliche Kindknoten zu entfernen.
Wozu die Ersetzung im Inhalt, wenn der Inhalt sowieso entsorgt wird?
> Konqeror und Safari stürzen sofort ab, sobald die Seite aufgerufen wird
> [Beispielseite](http://test.twilo.de/zeilenumbruecheEntfernen.htm)
> wie kann ich dieses Problem beheben?
Indem Du es nicht erzeugst und die unsinnige Ersetzung wegläßt.
cu,
Andreas
--
[Warum nennt sich Andreas hier MudGuard?](http://MudGuard.de/)
[Schreinerei Waechter](http://www.schreinerei-waechter.de/)
[O o ostern ...](http://ostereier.andreas-waechter.de/)
Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
Hallo,
Um unnötige Fehler in Gecko-Browsern zu vermeiden, wird das Dokument zunächst von überflüssigen Leerzeichen und Zeilenumbrüchen befreit.
es handelt sich um folgende Zeile
dokument.body.innerHTML = dokument.body.innerHTML.replace(/[\r\n|\s]/g, '');
Daß damit auch Pipe-Zeichen entfernt werden, ist Dir klar?
jetzt wo du es sagst schon, hätte es vielleicht so lauten müssen?
document.body.innerHTML = document.body.innerHTML.replace(/(\r\n|\s)/g, '');
Und ist das k Absicht?
ne sorry, ist wohl beim Abschreiben passiert.... das 2.k durch C&P :-)
function Entfernen(element){
element.innerHTML = element.innerHTML.replace(/[\r\n|\s]/g, '');
while(0<element.childNodes.length){
var Knoten = element.firstChild;
var temp = element.removeChild(Knoten);
}
}
> Erscheint mir reichlich ineffizient. Erstmal sämtliche Leerzeichen, Pipes und Zeilenumbrüche im Element-Inhalt entfernen, um dann sämtliche Kindknoten zu entfernen.
> Wozu die Ersetzung im Inhalt, wenn der Inhalt sowieso entsorgt wird?
ich hatte es mit eingebaut, da im AJAX Buch stand, dass die Geckos das brauchen, nun hab ich es erstmal rausgenommen... und es funktioniert trotzdem...
mfg
Twilo