Avatar billede technux Nybegynder
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)
    }
Avatar billede jonas_html.dk Nybegynder
11. maj 2001 - 23:55 #1
Hvad med at benytte en ekstern .js fil ?
Avatar billede erikjacobsen Ekspert
11. maj 2001 - 23:55 #2
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\'
Avatar billede technux Nybegynder
12. maj 2001 - 00:03 #3
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.
Avatar billede technux Nybegynder
12. maj 2001 - 00:11 #4
Jeg brugte Jonas\' løsning, den virker perfekt. Er dog stadig ret nysgerrig mht. hvorfor <!-- -->  ikke virker, så hvis du vil svare alligevel.
Avatar billede jonas_html.dk Nybegynder
12. maj 2001 - 00:19 #5
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 ;-)
Avatar billede technux Nybegynder
12. maj 2001 - 00:35 #6
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?
Avatar billede erikjacobsen Ekspert
12. maj 2001 - 00:40 #7
Hmm, jeg har en der ser sådan ud, der virker:
<script type=\"text/javascript\" src=\"http://etellerandet.php\"></script><

Prøvede du mit forslag?
Avatar billede erikjacobsen Ekspert
12. maj 2001 - 00:41 #8
Nå nej, du har da garanteret skrevet

-->

og ikke

//-->

som du burde
Avatar billede jonas_html.dk Nybegynder
12. maj 2001 - 00:48 #9
Netscape burde ikke have problemer med at understøtte eksterne js-filer.

Måske er det fordi du skriver language=\"javascript\" ?
Avatar billede technux Nybegynder
12. maj 2001 - 00:48 #10
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).
Avatar billede erikjacobsen Ekspert
12. maj 2001 - 00:49 #11
Ude i din .js fil behøver du slet ikke <!-- ... --> forøvrigt :)
Avatar billede technux Nybegynder
12. maj 2001 - 00:52 #12
Det ved jeg :P
Avatar billede technux Nybegynder
12. maj 2001 - 01:13 #13
Har oprettet et spørgsmål omkring Netscape og .js her: http://www.eksperten.dk/spm/72075
Avatar billede olebole Juniormester
13. maj 2001 - 16:57 #14
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:
Avatar billede olebole Juniormester
13. maj 2001 - 16:59 #15
Ups....således:

<script language=\"JavaScript\">
  void(0);
</script>

<script language=\"JavaScript\" src=\"noget.js\"></script>

/mvh
Avatar billede technux Nybegynder
13. maj 2001 - 17:06 #16
Har lige prøvet. Det virker desværre heller ikke.
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