19. april 2001 - 10:41Der er
15 kommentarer og 2 løsninger
Mulighed for at fjerne html-kode med Javascript??
Jeg har lavet et lille script der tester en værdi i en XML-fil og hvis værdien er 1 skal et stykke html-kode være en kommentar.
Ideen er at man ved at ændre værdier i XML-filen får forskellige dele af web-siden at se. En vigtig ting: Dette skal IKKE køre på en webserver men skal virke fra brugerens harddisk.
Koden er som følger:
<script language=\"JavaScript\"> x = \"<span datasrc=#xmldso datafld=værdi></span>\" if (x=\"1\") { document.write(\"<!--\") } </script> Her kommer en masse HTML....
<script language=\"JavaScript\"> x = \"<span datasrc=#xmldso datafld=værdi></span>\" if (x=\"1\") { document.write(\"-->\") } </script>
Med denne kode får man en fejl når man loader siden i browseren: \"A runtime error has occurred - do you wish to debug? Error: Syntax error\"
Min normale måde at løse det problem er at lægge de \'betingede\' dele af siden ind i document.write kald og så kun skrive dem hvis de skal være der.
eg:
if ( user_name_found_in_cookie ) { document.write ( \"<p>Hallo igen \" +userNavn + \"<p>Rart at se dig igen.\" ); } else { document.write ( \"<p>Velkommen til min super side om brune æg. \" + \"<p>Indtast venligst dit navn her: \" + \"<form><input type=\'text\' name=\'xx\' value=\'\'></form>\" ); };
Hej Jakob - Tak for svaret men det er desværre ikke så hensigtsmæssigt.
Min HTML-side består af en masse \"moduler\" (10-15) og hver modul er ca 50 linier så hvis jeg skal skrive 10 moduler af 50 linier hver ind i scriptet så bliver det meget langt...
Det virker som om at browseren eksekverer de scripts der er i html-filen før den viser den. Jeg får den tidligere nævnte fejl når jeg loader min html-side men det virker faktisk. Siden viser ikke modul 1 men viser modul 2 3 ... så jeg skal bare have fjernet fejlen.
Må jeg anbefale at lave det i rammer. I en usynlig eller synlig ramme laver du document.write i den synlige ramme. Ellers opnår du netop det problem, som du beskriver - man kan stort set ikke løse det ordentligt.
Det eneste de to <!-- --> fortæller browseren er, at hvis browseren ikke understøtter javascript. Så skal javascript koden ikke afvikles på browseren. Så du behøver ikke lave det så omstændigt.
<script language=\"JavaScript\"> <!-- if (x != 1) { x = \"<span datasrc=#xmldso datafld=værdi></span>\" } --> </script> Her kommer en masse HTML....
<script language=\"JavaScript\"> <!-- if (x != 1) { x = \"<span datasrc=#xmldso datafld=værdi></span>\" } --> </script>
Nå, ok, den virkede så ikke i IE4 - mage til bøvl man skal have for den dumme browser. Første forsøg virkede naturligvis i verdens bedste browser: NS4.5 :)
Tak til alle der har hjulpet!!!! Jeg har fordelt pointene imellem jer - desværre kunne jeg ikke give JakobA nogen men mange tak for hjælpen!!
Det endte med at jeg løste opgaven vha. et lille vb-program man skal køre først.
Synes godt om
Ny brugerNybegynder
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.