Avatar billede ladyhawke Novice
20. februar 2009 - 11:43 Der er 13 kommentarer og
2 løsninger

Fejl i FireFox - hvad kan den skyldes

invalid XML tag syntax
dcsTag()default.aspx (linje 600)
(?)()default.aspx (linje 689)
[Break on this error] <document.write("<SCR"+"IPT TYPE='t...'><\/SCR" +"IPT>"); \n

Ovenstående er hvad jeg får fra FireFox og jeg kan godt regne ud at der er noget galt, men pt. ikke hvad... Er der nogen som har set den type fejl før og ved hvad jeg bør lede efter?

Problmatikken er at det nævnte Javascript bliver genereret via en lang streng i c# (der er escaped efter bedste evne). Derfor er det svært at fejlsøge koden, før den køres og når den kører har jeg mindst 1 fejl (sikkert beslægtet med andet)...
Avatar billede olebole Juniormester
20. februar 2009 - 12:29 #1
<ole>

document.write giver absolut ingen mening i forbindelse med X(HT)ML

/mvh
</bole>
Avatar billede ladyhawke Novice
20. februar 2009 - 12:41 #2
Nu er spørgsmålet oprettet i JavaScript kategorien og ikke i X(HT)ML, med vilje...

Det er et script jeg har fået, som skal inkluderes på en side og det fejler, som angivet. I en user control hvor scriptet er inkluderet som JavaScript direkte, melder den ikke samme fejl, men den løsning kan jeg ikke bruge i dette tilfælde.

Altså skal jeg på en eller anden måde finde ud af, hvad den får galt i halsen, så jeg kan få det til at køre igen... Det er da højst sandsynligt at problemet er opstået, fordi jeg har fumlet i at escape strengen, men bare jeg kunne få en ide om hvor/hvad...
Avatar billede ladyhawke Novice
20. februar 2009 - 13:01 #3
Hvis jeg er heldig har jeg faktisk fundet fejlen!

Ved et tilfælde havde du ret i placeringen, men du har ikke spottet fejlen (eller det tror jeg da ikke).

Fejlen er ganske rigtigt i denne linie:
<document.write("<SCR"+"IPT TYPE='t...'><\/SCR" +"IPT>"); \n

og fejlen er "<" i linien:
<document.write("<SCR"+"IPT TYPE='t...'><\/SCR" +"IPT>"); \n

Det må simpelthen være en taste-glyph, som jeg er blevet ved med at overse, i min jagt efter "escpape" fejl....
Avatar billede olebole Juniormester
20. februar 2009 - 13:03 #4
Nu er jeg sådan set ligeglad med, hvor du har oprettet spørgsmålet. Jeg forholder mig udelukkende til det, du spørger os om og det, du viser os  =)

Du kan som sagt ikke bruge document.write i forbindelse med XML - og det er jo netop en XML-fejl, du viser. I forbindelse med XML skal du altid bruge DOM, hvis du vil manipulere elementerne i dokumentet.

Hvis document.write skulle implementeres under XML, ville man skulle fyre den allermest grundlæggende regel i XML - nemlig at XML-dokument altid skal være velformet.
Avatar billede olebole Juniormester
20. februar 2009 - 13:06 #5
- og script skal også escapes i forbindelse med XML, så der er en hel del ting, du skal have styr på ... netop fordi du bruger XML/XHTML.

Skal alle dine fejl rettes, er du nok nødt til at lægge et link til siden
Avatar billede olebole Juniormester
20. februar 2009 - 13:07 #6
"Ved et tilfælde havde du ret i placeringen, men du har ikke spottet fejlen (eller det tror jeg da ikke)." >> Du tager fejl! Det er fuldstændig basal viden, at document.write ikke kan bruges under XML  =)
Avatar billede olebole Juniormester
20. februar 2009 - 13:17 #7
- og hvis du skulle have brug for dokumentation, så er der lidt her:
    http://www.w3.org/MarkUp/2004/xhtml-faq#docwrite

- og en rimelig logisk og pædagoisk udskæring i pap af samme informationer:
    http://ln.hixie.ch/?count=1&start=1091626816
Avatar billede ladyhawke Novice
20. februar 2009 - 13:19 #8
der var intet rå XML i det, og document.write SKAL med, så det var en simpel "slåfejl", det er "<" der skal væk, ikke resten af linien...

Det der forvirrede var netop XML fejlen, fordi jeg ikke har lavet noget XML halløj i den nævnte kode, bortset fra den famøse "<", som fik FireFox til at tro, den skulle tolke XML (klædeligt røde ører i min ende)...

I øvrigt var den nævnte fejl årsag til den anden fejl jeg havde (hvad jeg også havde mistanke om), så da jeg fjernede "<" i den linie, så meldte FF ingen fejl!
Avatar billede olebole Juniormester
20. februar 2009 - 13:24 #9
Du skriver vel XHTML. Ellers ville FF næppe begynde at tale om XML. XHTML er et subset af XML og skal derfor overholde alle XML-regler - hvorfor jeg også tidligere skrev X(HT)ML. XHTML er 'rå XML'  ;o)

Heller ikke under XHTML giver document.write altså mening
Avatar billede ladyhawke Novice
20. februar 2009 - 13:29 #10
document.write er noget javascript, og da det skal med i dette tilfælde, skulle jeg finde ud af hvor snoren knækkede, det synes jeg ikke fremgik at dit svar, snarere at jeg skulle fjerne "document.write" som er en central del af scriptet, hvorfor det absolut ville give fejl igen...

Jeg vil gerne dele point, i og med at din betragtning om at document.write ikke hørte til i XML, ledte mig på sporet af den reelle fejl...

(ud fra din beskrivelse kunne jeg dog ikke direkte løse den, med mindre jeg har overset noget i teksten...)
Avatar billede olebole Juniormester
20. februar 2009 - 13:37 #11
Nu afslører du jo ikke, om jeg har ret i, at du skriver XHTML. Gør du det, skal document.write ikke med ... det ikke komme med.

Det er muligt, visse browsere tollererer document.write under XHTML, men det er i så fald en ekstremt alvorlig fejl - og den slags bør man absolut ikke basere sin kode på.

Hvis du bruge den alligevel, gør du på den anden side livet langt lettere. Så er der nemlig ikke længere grund til, at du tænker på HTML-, CSS-, DOM- eller script-standarder  ;o)
Avatar billede ladyhawke Novice
20. februar 2009 - 13:52 #12
jeg skriver ikke så moderne (XHTML) i det her tilfælde, eller rettere, det gør leverandøren af scriptet ikke :o)
Avatar billede olebole Juniormester
20. februar 2009 - 14:16 #13
Hmmm ... nu har jeg lige testet - og ja, du har zq ret! Firefox er lam og buggy nok til at kaste en XML-fejl i en HTML-kode (endnu et godt eksempel på, hvordan FF's XML- og HTML-fortolkning er rodet sammen i én pærevælling - og i virkeligheden er én og samme samling bugs à la carte!).

IE er væsentligt mere realistisk og kaster den forventede 'syntax error'.
Avatar billede ladyhawke Novice
20. februar 2009 - 14:25 #14
Fint nok, det var ikke for at forvirre begreberne, men som du selv har opdaget, klarer browseren det fint...

Synes så ikke altid at IE er god til at komme med relevante informationer om fejl, men nu fandt jeg da endelig synderen og det er super godt :oD
Avatar billede olebole Juniormester
20. februar 2009 - 14:32 #15
Nej, ofte er FF bedre på fejlmeddelelser, men ikke lige i dette tilfælde. Tak for points  =)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester