javascript fout

  • Onderwerp starter Onderwerp starter cc30
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

cc30

Gebruiker
Lid geworden
27 mei 2009
Berichten
36
Hallo allemaal,

Ik ben nieuw hier dus even een korte voorstelronde:Ik ben afkomstig uit noord holland, 34 jaar en vrouw.

Hier meteen mijn probleem:
Ik maak gebruik van verschillende achtergronden d.m.v. een javascript en css.
Nu zit er een fout in mijn javascript, ik heb van alles opgezocht via Google maar de fout blijft. Als ik het weghaal werkt het script niet meer.

Foutmeldingen script is:

Code:
[B]XML Parsing Error:[/B]

[COLOR="Red"]for(i=0;i<aantal;i++){[/COLOR]


[B]character X not allowed in attribute specification list:[/B]

[COLOR="red"]for(i=0;i<aantal;i++){[/COLOR]


[B]element X undefined:[/B]

[COLOR="red"]for(i=0;i<aantal;i++){[/COLOR]

Ik hoop dat iemand mij kan helpen, zie onderstaande:

SCRIPT:

Code:
<script type="text/javascript">
function wisseling(anouk_welkestijl){
anouk_welkestijl=anouk_welkestijl-1;
if(document.styleSheets){
var aantal = document.styleSheets.length;

for(i=0;i<aantal;i++){

if(i!=anouk_welkestijl){
document.styleSheets[i].disabled=true;}
else{document.styleSheets[i].disabled=false;}}}}
</script>


CSS:

Code:
<link href="style1.css" rel="stylesheet" type="text/css" />
<link href="style2.css" rel="stylesheet" type="text/css" />
<link href="style3.css" rel="stylesheet" type="text/css" />

HTML:

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>.......</title>

<!-- Scripts -->
<script type="text/javascript">addthis_pub = 'AddThis';</script>
<script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>

<!-- layout style -->
<link href="style1.css" rel="stylesheet" type="text/css" />
<link href="style2.css" rel="stylesheet" type="text/css" />
<link href="style3.css" rel="stylesheet" type="text/css" />


<script type="text/javascript">
function wisseling(anouk_welkestijl){
anouk_welkestijl=anouk_welkestijl-1;
if(document.styleSheets){
var aantal = document.styleSheets.length;
for(i=0;i<aantal;i++){
if(i!=anouk_welkestijl){
document.styleSheets[i].disabled=true;}
else{document.styleSheets[i].disabled=false;}}}}
</script>
<!--  -->

</head>
<body>

<div id="header">

<div id="keuzemenu">
<a class="bloemen" href="JavaScript:wisseling(2)">1</a>
<a class="fruit" href="JavaScript:wisseling(3)">2</a> 
<a class="origineel" href="JavaScript:wisseling(4)">3</a>
</div>

     <div id="upper">
<a class="ln" href="link1"></a>  
<a class="up1" href="link2" ></a> 
<a class="up2" href="link3"></a> 
<a class="up3" href="vcard.vcf"></a>
     </div>
     
</div>

           
<div id="content-wrap">
    <div id="content">
      <div id="menu"> 
      <a class="home home-selected" href="index.htm">      </a> <a class="diensten" href="diensten.htm"></a> 
      <a class="media" href="media.htm"></a> 
      <a class="contact" href="contact.htm"></a></div>
  </div>
    </div>
       
<div id="footer">
  <div id="footer-wrap">
</div>
   </div>
   
</body>
</html>
 
Laatst bewerkt:
Welkom! ;)

Ik denk dat je het beter helemaal anders kunt doen. Gewoon 1 stylesheet en met JavaScript alleen de achtergrond aanpassen:

HTML:
<script type="text/javascript">
  var images = new Array();
  images[2] = 'bloemen.jpg';
  images[3] = 'fruit.jpg';
  images[4] = 'origineel.jpg';

  function wisseling ( id ) {
    document.body.background = images[id];
  }
</script>

Dan moet je uiteraard de paden naar de afbeeldingen nog even aanpassen, maar dit werkt zeer waarschijnlijk een stuk efficienter dan 3 verschillende stylesheets.
 
Als je enkel achtergronden verandert, is Eric zijn oplossing waarschijnlijk efficiënter, maar om het over de foutmelding in je script te hebben:

Op het moment dat je: for(i=0;i<aantal;i++){ schrijft, is aantal wel al gekend, maar bestaat i nog niet. Als je die regel wijzigt naar het volgende:
Code:
for(var i = 0; i < aantal; i++){
zou je foutmelding moeten verdwenen zijn.
 
Als je enkel achtergronden verandert, is Eric zijn oplossing waarschijnlijk efficiënter, maar om het over de foutmelding in je script te hebben:

Op het moment dat je: for(i=0;i<aantal;i++){ schrijft, is aantal wel al gekend, maar bestaat i nog niet. Als je die regel wijzigt naar het volgende:
Code:
for(var i = 0; i < aantal; i++){
zou je foutmelding moeten verdwenen zijn.

dank je wel, dat scheelt 5 fouten, er wordt alleen nog 1 fout aangegeven, zie onderstaande meldingen:

Code:
[B]Line 22, Column 18: character "<" is the first character of a delimiter but occurred as data :[/B]

for(var i = 0; i [COLOR="Red"]<[/COLOR] aantal; i++){

[B]Line 22, Column 18: XML Parsing Error: StartTag: invalid element name: [/B]

for(var i = 0; i [COLOR="red"]<[/COLOR] aantal; i++){
 
Welkom! ;)

Ik denk dat je het beter helemaal anders kunt doen. Gewoon 1 stylesheet en met JavaScript alleen de achtergrond aanpassen:

HTML:
<script type="text/javascript">
  var images = new Array();
  images[2] = 'bloemen.jpg';
  images[3] = 'fruit.jpg';
  images[4] = 'origineel.jpg';

  function wisseling ( id ) {
    document.body.background = images[id];
  }
</script>

Dan moet je uiteraard de paden naar de afbeeldingen nog even aanpassen, maar dit werkt zeer waarschijnlijk een stuk efficienter dan 3 verschillende stylesheets.



Je hebt helemala gelijk, ik gebruik nu 12 stylesheets voor 4 pagina's:shocked:
Ik was er wegens gebrek aan kennis niet op gekomen, ik ga het aanpassen. Bedankt!
 
Ik had even gemist dat je pagina als XML geparsed werd, in dat geval zou het kunnen helpen om je javascript binnen HTML-commenttags te plaatsen, op deze wijze:
Code:
<script type="text/javascript">
<!--
function wisseling(anouk_welkestijl)
{
        anouk_welkestijl = anouk_welkestijl-1;
        if (document.styleSheets) {
                var aantal = document.styleSheets.length;
                for (var i = 0; i < aantal; i++) {
                        if (i != anouk_welkestijl) {
                                document.styleSheets[i].disabled = true;
                        } else {
                                document.styleSheets[i].disabled = false;
                        }
                }
        }
}
// -->
</script>

Nuja, niet dat het nog veel praktisch nut heeft aangezien Eric zijn oplossing hopen efficiënter is, maar nu weet je tenminste waar de fout mogelijks zat ;)
 
Ik had even gemist dat je pagina als XML geparsed werd, in dat geval zou het kunnen helpen om je javascript binnen HTML-commenttags te plaatsen, op deze wijze:
Code:
<script type="text/javascript">
<!--
function wisseling(anouk_welkestijl)
{
        anouk_welkestijl = anouk_welkestijl-1;
        if (document.styleSheets) {
                var aantal = document.styleSheets.length;
                for (var i = 0; i < aantal; i++) {
                        if (i != anouk_welkestijl) {
                                document.styleSheets[i].disabled = true;
                        } else {
                                document.styleSheets[i].disabled = false;
                        }
                }
        }
}
// -->
</script>

Nuja, niet dat het nog veel praktisch nut heeft aangezien Eric zijn oplossing hopen efficiënter is, maar nu weet je tenminste waar de fout mogelijks zat ;)

Nog bedankt voor de tip, was mij helemaal ontgaan.De fout is opgelost:)
 
Welkom! ;)

Ik denk dat je het beter helemaal anders kunt doen. Gewoon 1 stylesheet en met JavaScript alleen de achtergrond aanpassen:

HTML:
<script type="text/javascript">
  var images = new Array();
  images[2] = 'bloemen.jpg';
  images[3] = 'fruit.jpg';
  images[4] = 'origineel.jpg';

  function wisseling ( id ) {
    document.body.background = images[id];
  }
</script>

Dan moet je uiteraard de paden naar de afbeeldingen nog even aanpassen, maar dit werkt zeer waarschijnlijk een stuk efficienter dan 3 verschillende stylesheets.

Om hier weer even op terug te komen, hoe pas ik de paden aan?
Alvast bedankt.
 
Je moet bij:

HTML:
images[2] = 'bloemen.jpg';
images[3] = 'fruit.jpg';
images[4] = 'origineel.jpg';

hetgeen tussen quotes ( ' ' ) staat vervangen door een relatief pad naar je afbeelding (gezien vanaf het script). Bijvoorbeeld:

HTML:
images[2] = 'images/backgrounds/bloemen.jpg';
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan