Avatar billede burgers Nybegynder
20. april 2005 - 10:05 Der er 33 kommentarer og
1 løsning

Validering af kode

Jeg har valideret min kode gennem http://validator.w3.org/ og er nu nede på 2 fejl, som jeg dog ikke kan greje:

Line 37, column 814: element "MARQUEE" undefined

...height='4'></td></tr><tr><td><marquee><a href='index.asp?ID=726' class='LiveT

"You have used the element named above in your document, but the document type you are using does not define an element of that name. This error is often caused by incorrect use of the "Strict" document type with a document that uses frames (e.g. you must use the "Frameset" document type to get the "<frameset>" element), or by using vendor proprietary extensions such as "<spacer>" or "<marquee>" (this is usually fixed by using CSS to achieve the desired effect instead)."



Line 37, column 13576: an attribute specification must start with a name or name token

...ore_off.gif' onmouseover=btnnews1.src='Images/readmore_on.gif' onmouseout=btn

"Check for stray quotes or incomplete attribute definitions."
Avatar billede skyggen2000 Nybegynder
20. april 2005 - 10:07 #1
Du mangler "" til den ene
onmouseover="btnnews1.src='Images/readmore_on.gif'"
Avatar billede busschou Praktikant
20. april 2005 - 10:14 #2
fortæller den ikke at <marquee> ikke er et anerkendt tag og at du hellere skulle bruge css til at løse det?
Avatar billede skyggen2000 Nybegynder
20. april 2005 - 10:14 #3
Til den første:

Du benytter strict dtd, måske skulle du overveje at benytte
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<marquee> elementet er ikke understøttet af alle browsere (NS). Har du husket at tilføje </marquee>
Avatar billede busschou Praktikant
20. april 2005 - 10:16 #4
jvnf w3c.org
Note. The BLINK and MARQUEE elements are not defined in any W3C HTML specification and should not be used.
Avatar billede skyggen2000 Nybegynder
20. april 2005 - 10:16 #5
Man kan lave benytte javascript i stedet for <marquee> objektet. Det funker til alle browsere.
Avatar billede skyggen2000 Nybegynder
20. april 2005 - 10:19 #6
Tjek her:
http://www.dynamicdrive.com/dynamicindex2/cmarquee2.htm

Funker til alle browsere:)
Avatar billede skyggen2000 Nybegynder
20. april 2005 - 10:20 #7
Desuden er den klart bedre end marquee objektet, der har tendens til at "hakke" over skærmen hvis bare det går lidt stærkt...
Avatar billede burgers Nybegynder
20. april 2005 - 10:29 #8
@ skyggen2000

1. Jeg bruger: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

2. Min kode ligger ikke i min body, så jeg bruger ' i stedet for "´, og derfor skal den ikke med. Det skal lige siges at den også virker fint på siden.

3. Ja, ved godt at <marquee> ikke er en optimal løsning - lurer lidt på dit link og ser om jeg kan smide noget javascript ind i stedet.

Så mangler jeg egentlig kun den her:

...ore_off.gif' onmouseover=btnnews1.src='Images/readmore_on.gif' onmouseout=btn
Avatar billede busschou Praktikant
20. april 2005 - 10:33 #9
den skal være som skyggens første indlæg
onmouseover = "NOGET HER" ... der skal være " omkring
Avatar billede skyggen2000 Nybegynder
20. april 2005 - 10:33 #10
1. >> allright

2. man kan bruge begge dele(dog bør man bruge dem som vist nedenfor), men i dit tilfælde skal du bruge "" uden om det kode der skal eksekveres i fx. onmouseover.
onmouseover="btnnews1.src='Images/readmore_on.gif'"

du bruger single pling til at definere en streng i strengen.

3. Koden er jo skrevet, så den ligger lige til højrebenet;)
Avatar billede burgers Nybegynder
20. april 2005 - 10:41 #11
2. Hvis jeg smider "" omkring får jeg fejl på siden.
Avatar billede busschou Praktikant
20. april 2005 - 10:42 #12
hvordan ser mere af koden ud?
du skal kalde billedet rigtig vil jeg tro?
onmouseover="document.images['btnnews1'].src='Images/readmore_on.gif'"
Avatar billede skyggen2000 Nybegynder
20. april 2005 - 10:42 #13
smid koden du skriver, det skal også uden om onmouseout="kode", og andre javascript funktioner.
Avatar billede burgers Nybegynder
20. april 2005 - 10:44 #14
<IMG style='Cursor:hand;' id=btnnext1 SRC='Images/next_off.gif' onmouseover=btnnext1.src='Images/next_on.gif' onmouseout=btnnext1.src='Images/next_off.gif' onclick='document.location=index.asp?Page=" & strNext & "&amp;Caller=archive&SearchID=" & varSearch & "'>

Her er koden som virker perfekt på siden, men som generer fejl i valideringen.
Avatar billede skyggen2000 Nybegynder
20. april 2005 - 10:45 #15
for det første bør du benytte pointer i stedet for hand, funker kun i IE.
Avatar billede busschou Praktikant
20. april 2005 - 10:46 #16
<IMG style='Cursor:hand;' id=btnnext1 SRC='Images/next_off.gif' onmouseover="this.src='Images/readmore_on.gif'"
onmouseout="this.src='Images/next_off.gif'" onclick='document.location=index.asp?Page=" & strNext & "&amp;Caller=archive&SearchID=" & varSearch & "'>
Avatar billede skyggen2000 Nybegynder
20. april 2005 - 10:46 #17
Prøv det der:

<IMG style="Cursor:pointer;" id=btnnext1 SRC="Images/next_off.gif" onmouseover="btnnext1.src='Images/next_on.gif'" onmouseout="btnnext1.src='Images/next_off.gif'" onclick='document.location=index.asp?Page=" & strNext & "&amp;Caller=archive&SearchID=" & varSearch & "'>
Avatar billede burgers Nybegynder
20. april 2005 - 10:52 #18
Hvis jeg smider et " i stedet for ' ind opstår der med det samme fejl. Gør det nogen forskel at den ligger i en string og tabel?

strContent = strContent & "<tr><td width='325'></td><td width='80' align='right'><IMG style='Cursor:hand;' id=btnnext1 SRC='Images/next_off.gif' onmouseover=btnnext1.src='Images/next_on.gif' onmouseout=btnnext1.src='Images/next_off.gif' onclick=document.location='index.asp?Page=" & strNext & "&amp;Caller=archive&SearchID=" & varSearch & "'></td></tr>"
Avatar billede skyggen2000 Nybegynder
20. april 2005 - 10:54 #19
de steder du vil have quetes med skal du sætte et " foran. dvs skrive "", så bliver det næste tegn ignoreret i strengen.
Avatar billede burgers Nybegynder
20. april 2005 - 11:08 #20
Har lige sammenlignet med en anden string der er præcis mangen til blot med anden id, og her brokker den sig ikke over noget ved valideringen?!?
Avatar billede skyggen2000 Nybegynder
20. april 2005 - 11:11 #21
man bør altid følge den korrekte syntaks...

Prøv det der, det er altid lidt kringlet hvis man bygger sin html op via strenge.

strContent = strContent & "<tr><td width='325'></td><td width='80' align='right'><IMG style='Cursor:pointer;' id=btnnext1 SRC='Images/next_off.gif' onmouseover=""btnnext1.src='Images/next_on.gif'"" onmouseout=""btnnext1.src='Images/next_off.gif'"" onclick=""document.location='index.asp?Page=" & strNext & "&amp;Caller=archive&SearchID=" & varSearch & "'""></td></tr>"
Avatar billede burgers Nybegynder
20. april 2005 - 11:14 #22
Nope, "btnnext1 ikke defineret".
Avatar billede busschou Praktikant
20. april 2005 - 11:15 #23
brug "this" istedet...refererer jo til sig selv ikke
Avatar billede busschou Praktikant
20. april 2005 - 11:16 #24
enten det eller som i kommentaeren 10:42:10
Avatar billede burgers Nybegynder
20. april 2005 - 11:22 #25
Om jeg sætter this eller btnnext1 ind gør ingen forskel - begge dele virker ja, men det løser ikke "problemet".

Det der virkelig undrer mig er at jeg kan have ens strenge andre steder hvor den ikke pipper om problemer på http://validator.w3.org/.
Avatar billede busschou Praktikant
20. april 2005 - 11:24 #26
har du et link
Avatar billede roenving Novice
21. april 2005 - 01:58 #27
Nå du bruger den i en response.write skal du fordoble gåseøjne, som måtte være nødvendige i koden, desuden skal du referere direkte til tagget, og undgå den fuldstændig ornsvage måde at adressere på, som kommer ud af at bruge dumme editorer, for det kan uden problemer løses cross-browser:

Response.Write "<IMG style='cursor:pointer;' id='btnnext1' src='Images/next_off.gif' onmouseover=""this.src='Images/next_on.gif'"" onmouseout=""this.src='Images/next_off.gif'"" onclick='document.location=""index.asp?Page=" & strNext & "&amp;Caller=archive&amp;SearchID=" & varSearch & """'>"

-- og hvis du kigger nærmere efter, vil du bemærke, at man både kan neste 'er i "" og ""er i ' ...
Avatar billede burgers Nybegynder
21. april 2005 - 11:24 #28
Lækkerier Roenvig, lige hvad der manglede. Din løsning løste problemet til UG. Smid et svar.
Avatar billede busschou Praktikant
21. april 2005 - 11:42 #29
kan se roenving også brugte "this.src" istedet for "btnnext1.src"
Jeg er interesseret i om det ingen forskel gør for om det virker som du hårdnakket påstod 20/04-2005 11:22:54 ?
Avatar billede skyggen2000 Nybegynder
21. april 2005 - 11:49 #30
Well, jeg har erfaret at elemeter med id=hej bliver "globale" og kan tilgås som burgers gør, hvorimod id="hej" bliver lagt ind i objekt hierakiet (kun der) og ikke kan tilgås sådan. Dog bør man altid benytte den sidstnævnte syntaks.
Avatar billede burgers Nybegynder
21. april 2005 - 11:51 #31
@ busschou

Ja, begge dele virker her - både på sitet og i valideringen.
Avatar billede busschou Praktikant
21. april 2005 - 11:56 #32
ok nogen som kan forklare mig det?
for jeg troede ikke bare man kunne sige at den skulle ændre src på et givent navn uden fortælle den hvilket..eftersom navnet jo ikke nødvendigvis er unikt eller for så vidt kunne referere til noget andet end et <img> fx en <form> som jo ingen src har ?
Avatar billede roenving Novice
22. april 2005 - 10:50 #33
As simple as that ...

Hvis browseren kender objektet document.all vil ethvert dokument-element med et id kunne tilgås simpelthen ved at bruge id'et, da der samtidig er defineret at document.all kan udelades (ligesom f.eks. window er det globale scope i al javascript !-)

-- og det er fuldstændig uafhængigt af, om man bruger gåseøjne omkring id'et, da forskellen kun er, at uden gåseøjne accepteres af præ html4 og html4.01-loose, men ikke af andre doctypes -- altså i kode anno 1998 !o]

Da det kun er IE og Opera, som kender document.all, kan det under ingen omstændigheder anbefales at benytte sig af dette, medmindre man udvikler til et intranet, hvor man selv for evigt kan kontrollere hvilke browsere der bruges ...

I det ovenstående eksempel er det direkte tåbeligt, for man har altid på en event i et element en direkte reference til elementet selv via this, så at begynde at skulle finde et id frem er at gå over åen efter vand ...

Velbekomme '-)
Avatar billede roenving Novice
24. april 2005 - 10:56 #34
-- og tak for point ;~}
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