11. maj 2001 - 23:46
Der er
15 kommentarer og 1 løsning
W3C validering af DHTML
Jeg anvender en del DHTML scripts på mit site, der ellers i alt HTML validerer til HTML4.0 ifgl. W3C standarden. Koden som nedenstående kan den dog ikke lide pga. </style> taget i linie 16. Den kan tilsyneladende ikke se det er åbnet i linie 2. Hvad kan gøres for at få den til at godkende den her slags kode? function fold_style(){ str=\'\\n<style type=\"text/css\">\\n\' str+=\'\\tDIV.cl\'+this.name+\'{position:absolute; \'+ this.clFold +\'; width:\'+this.width+\'; height:20}\\n\' str+=\'\\tDIV.cl\'+this.name+\'Sub{position:absolute; \'+ this.clSub +\';height:20; width:\'+this.width+\'; visibility:hidden}\\n\' str+=\'\\tDIV.cl\'+this.name+\'Sub2{position:absolute; \'+ this.clSub2 +\';height:20; width:\'+this.width+\'; visibility:hidden}\\n\' str+=\'\\tDIV.cl\'+this.name+\'Sub3{position:absolute; \'+ this.clSub3 +\';height:20; width:\'+this.width+\'; visibility:hidden}\\n\' str+=\'\\tDIV.cl\'+this.name+\'Sub4{position:absolute; \'+ this.clSub4 +\';height:20; width:\'+this.width+\'; visibility:hidden}\\n\' str+=\'\\tDIV.cl\'+this.name+\'Sub5{position:absolute; \'+ this.clSub5 +\';height:20; width:\'+this.width+\'; visibility:hidden}\\n\' str+=\'\\t#div\'+this.name+\'Cont{\'+this.clCont+\'; left:\'+this.left+\'; top:\'+this.top+\'; height:\'+this.maxheight+\'; width:\'+this.width+\'; visibility:hidden}\\n\' str+=\'\\tA.cl\'+this.name+\'Links{\'+this.clFoldLinks+\'}\\n\' str+=\'\\tA.cl\'+this.name+\'1Links{\'+this.clSubLinks+\'}\\n\' str+=\'\\tA.cl\'+this.name+\'2Links{\'+this.clSub2Links+\'}\\n\' str+=\'\\tA.cl\'+this.name+\'3Links{\'+this.clSub3Links+\'}\\n\' str+=\'\\tA.cl\'+this.name+\'4Links{\'+this.clSub4Links+\'}\\n\' str+=\'\\tA.cl\'+this.name+\'5Links{\'+this.clSub5Links+\'}\\n\' str+=\'</style>\\n\\n\\n\' document.write(str) }
Annonceindlæg fra Kingston Technology
Hvad med at benytte en ekstern .js fil ?
Har du <!-- ... --> om koden i dine <script>-tags ?? Ellers skal du forvirre den: str=\'\\n<sty\'+\'le type=\"text/css\">\\n\' og str+=\'</sty\'+\'le>\\n\\n\\n\'
Jonas >> kan jeg tage den koden uden at ændre i den og bare lægge den i en .js fil? Erik >> Jeg havde ikke <!-- --> omkring koden, men har sat det nu. Den giver mig dog stadig samme fejl.
Jeg brugte Jonas\' løsning, den virker perfekt. Er dog stadig ret nysgerrig mht. hvorfor <!-- --> ikke virker, så hvis du vil svare alligevel.
Så vidt jeg kan vurdere er det en fejl at validatoren ikke godkender din kode. Den må simpelthen have en svaghed når den skal parse javascript koder med html tags. Men eksterne .js filer løser problemet - og så har de jo bl.a. også den kæmpe fordel at de kan genbruges i flere dokumenter - det letter senere opdateringer gevaldigt ;-)
Nu opdagede jeg så lige, at Netscape ikke længere vil vise min menu (koden fra før er en del af en menu) efter den er lagt i .js filer. Det hele virker perfekt i IE og virkede også før i Netscape. Jeg har inkluderet .js filerne således: <script type=\"text/javascript\" src=\"inc/foldmenu.js\" language=\"JavaScript\"></script> Er det ikke korrekt?
Nå nej, du har da garanteret skrevet --> og ikke //--> som du burde
Netscape burde ikke have problemer med at understøtte eksterne js-filer. Måske er det fordi du skriver language=\"javascript\" ?
Ja, jeg skrev uden // - det sagde du jo :) Tester det en anden gang, da jeg er ret glad for .js løsning (hvis den kommer til at virke i Netscape).
Ude i din .js fil behøver du slet ikke <!-- ... --> forøvrigt :)
jonas_html.dk >> Det er alm. kendt at netop NS har vanskeligheder med eksterne .js-filer. Der er endda ikke bare én, men flere bugs - der også bliver diskuteret i deres egne fora :o) Et \'hack\' består i at lægge en lille stump kode ind på siden - før der inkluderes...således:
Ups....således: <script language=\"JavaScript\"> void(0); </script> <script language=\"JavaScript\" src=\"noget.js\"></script> /mvh
Har lige prøvet. Det virker desværre heller ikke.
Vi tilbyder markedets bedste kurser inden for webudvikling