delay
door delay Jan 4, 2007 om 22:57
Computers & telefonie

Javascript

Hallo, ik probeer een pagina te maken zodat javascript een xml bestand gaat lezen van mijn school (het is een rooster) en dat probeer ik dan te laten schrijven op elke regel een "regel", mijn code:

<html>
<head>

<script type="text/javascript">
var xmlDoc;
function loadXML()
{
// code for IE
if (window.ActiveXObject)
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async=false;
  xmlDoc.load("http://webmail.tabor.nl/werenfridus/Rooster/Dagelijkse_rooster/lk_xml1.xml");
  getmessage();
  }
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation &&
document.implementation.createDocument)
  {
  xmlDoc=document.implementation.createDocument("","",null);
  xmlDoc.load("http://webmail.tabor.nl/werenfridus/Rooster/Dagelijkse_rooster/lk_xml1.xml");
  xmlDoc.onload=getmessage;
  }
else
  {
  alert('Your browser cannot handle this script');
  }
}

function getmessage()
{

var noitems
var noitems = xmlDoc.getElementsByTagName("item").length;

document.write("number of items: ",noitems);
document.write("<p>")

var lichtkrant = xmlDoc.getElementsByTagName("lichtkrant61");
var items = lichtkrant[0].getElementsByTagName("item");

for (var x = 1; x == noitems; x=x+1);
   {
var regel = items[x].getElementsByTagName("regel");
document.write(regel[0].firstChild.nodeValue);
   }
}
</script>

</head>
<body>
Klik hier om shit te updaten: <a href="#" onClick="loadXML()">klik hier</a>

</body>
</html>

en ik doe iets fout want die for (var... werkt niet, kan iemand mij helpen?

Alvast 1000 maal bedankt!

Greetx TK



1363 22 Rapporteer

Deze vraag is gesloten en kan niet meer worden beantwoord. Let op! Gesloten topics hebben een archieffunctie. De vragen sluiten mogelijk niet meer aan bij de huidige situatie en kunnen gedateerde informatie bevatten.

ve
door verwijderd - Jan 4, 2007 om 23:54
0 Antwoorden / 0 Vragen
0

Hallo Delay

Even snel hoor.
probeer het eens met <= (kleiner of gelijk) en  zonder ;
dus zo:
for (var x = 1; x <= noitems; x=x+1)




<script type="text/javascript">



ve
door verwijderd - Jan 5, 2007 om 00:45
0 Antwoorden / 0 Vragen
0

Mogelijk moet je de beginwaarde ook nog eens op 0 zetten
Dan wordt het zo:

var x=0
for (var x=0; x <= noitems; x=x+1)

Kijk ook eens hier: http://www.w3schools.com/js/default.asp

groeten AF





<script type="text/javascript">



ve
door verwijderd - Jan 5, 2007 om 11:03
0 Antwoorden / 0 Vragen
0

Hij doet het ongeveer wel, maar er zijn in totaal 36 items. var noitems = xmlDoc.getElementsByTagName("item"); (=36) maar hij geeft er tot nu toe maar de eerste 2 items weer...


Verder doet hij het wel en bedankt voor uw hulp ^_^


Greetx TK

ve
door verwijderd - Jan 5, 2007 om 11:09
0 Antwoorden / 0 Vragen
0

Als ik dit doe:


var x=0
for (var x=0; x <= noitems; x=x+1)
{
var regel = items[5].getElementsByTagName("regel");
document.write("<p>");
document.write(regel[0].firstChild.nodeValue);
document.write("</p>");
   }
}


bij x vervang ik dan door 5 dan krijg ik wel netjes 36 keer iets...


Greetx TK

ve
door verwijderd - Jan 5, 2007 om 11:14
0 Antwoorden / 0 Vragen
0

http://webmail.tabor.nl/werenfridus/Rooster/Dagelijkse_rooster/lk_xml1.xml


zo ziet trouwens mijn XML bestand eruit, bij item 3 kunt u zien dat er duidelijk geen waarde staat... misschien heeft dit iets ermee te doen, maar die volgende waardes waar wel wat op staat wil ik dan wel hebben.


Greetx TK

ve
door verwijderd - Jan 5, 2007 om 21:28
0 Antwoorden / 0 Vragen
0

Heb er even mee gestoeid en inderdaad: hij klapt eruit als 'regel' geen waarde heeft.
Zou op te lossen moeten zijn met een if statement
Maar ik kom er niet uit (ben ook geen javascript expert)
Bovendien zou var regel een array moeten zijn maar mijn testje geeft aan dat de variabele undefined zou zijn.

Je zou het eens op een programmeer forum kunnen proberen.
Of de lege regels uit het xml bestand halen.

Succes





<script type="text/javascript">


<script type="text/javascript">



ve
door verwijderd - Jan 6, 2007 om 00:31
0 Antwoorden / 0 Vragen
0

Bedankt, ga ik morgenvroeg meteen proberen... ^^


Greetx TK

ve
door verwijderd - Jan 6, 2007 om 00:32
0 Antwoorden / 0 Vragen
0

wat precies doet catch{err} (misschien dat ik dit fout spell hoor)?


Greetx TK

ve
door verwijderd - Jan 6, 2007 om 09:57
0 Antwoorden / 0 Vragen
0

Het werkt niet, volgens mij is err niet gedefineerd ofzo kan dat, want de foutmelding geeft dat een object niet gedefineerd is...


Greetx TK

ve
door verwijderd - Jan 6, 2007 om 11:08
0 Antwoorden / 0 Vragen
0

Heb je de haakjes wel goed staan  ?
err is wel gedefinieerd, da´s het probleem niet.
(try/catch is eigenlijk een error afhandeling)

Probeer het eens zo:

regel = items[x].getElementsByTagName("regel")
try { document.write(regel[0].firstChild.nodeValue)}
catch(err) { document.write("<br>") }

De error die jij krijgt zou eigenlijk alleen zo moeten kunnen ontstaan:

try
  {
  document.write(regel[0].firstChild.nodeValue)
  }
catch(err)
  {
  txt="Error: " + err.description
  alert(txt)
  }






<script type="text/javascript">



ve
door verwijderd - Jan 6, 2007 om 11:15
0 Antwoorden / 0 Vragen
0

Hier het script zoals ik hem nu heb (werkt bij mij)

<html>
<head>

<script type="text/javascript">
var xmlDoc;
function loadXML()
{
// code for IE
if (window.ActiveXObject)
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async=false;
  xmlDoc.load("http://webmail.tabor.nl/werenfridus/Rooster/Dagelijkse_rooster/lk_xml1.xml");
  getmessage();
  }
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation &&
document.implementation.createDocument)
  {
  xmlDoc=document.implementation.createDocument("","",null);
  xmlDoc.load("http://webmail.tabor.nl/werenfridus/Rooster/Dagelijkse_rooster/lk_xml1.xml");
xmlDoc.onload=getmessage;
 
  }
else
  {
  alert('Your browser cannot handle this script');
  }
}

function getmessage()
{

var noitems
var noitems = xmlDoc.getElementsByTagName("item").length;

//document.write("number of items: ",noitems);
//document.write("<p>")

var lichtkrant = xmlDoc.getElementsByTagName("lichtkrant61");
var items = lichtkrant[0].getElementsByTagName("item");


var x=0
for (var x=0; x <= noitems; x=x+1)
  {
  regel = items[x].getElementsByTagName("regel")
  try { document.write(regel[0].firstChild.nodeValue)}
  catch(err) { document.write("<br>") }
  document.write("<br>")
  }

}

</script>

<body>

Klik hier om shit te updaten: <a href="#" onClick="loadXML()">klik hier</a>

</body>
</head>





<script type="text/javascript">



ve
door verwijderd - Jan 6, 2007 om 11:20
0 Antwoorden / 0 Vragen
0

Zie ik nu ook pas:
Laatste regel in mijn script </head> moet </html> zijn.
Laatste stukje wordt dan weer:

</head>
<body>
Klik hier om shit te updaten: <a href="#" onClick="loadXML()">klik hier</a>

</body>
</html>






<script type="text/javascript">



ve
door verwijderd - Jan 6, 2007 om 12:07
0 Antwoorden / 0 Vragen
0

Hey, waar is mijn antwoord nou? Dan nog maar een keer.
Zo moet het gaan lukken:

var x=0
for (var x=0; x <= noitems; x=x+1)
  {
  regel = items[x].getElementsByTagName("regel")
  document.write("<p>")
  try {document.write(regel[0].firstChild.nodeValue)}
  catch(err) { }
  document.write("</p>")
  }






<script type="text/javascript">


ve
door verwijderd - Jan 6, 2007 om 12:07
0 Antwoorden / 0 Vragen
0

Bedankt! Ik kan u niet genoeg bedanken hoe veel u mij geholpen heeft. Echt extreem veel bedankt ^^


Met vriendelijke groeten van TK

ve
door verwijderd - Jan 6, 2007 om 12:58
0 Antwoorden / 0 Vragen
0

Is goed ;-)
Vroeger heb ik veel geprogrammeerd, nu heb ik de tijd om de scripts van anderen te debuggen en daar heb ik heb ik veel plezier aan.

Groeten AF






<script type="text/javascript">



ve
door verwijderd - Jan 7, 2007 om 11:28
0 Antwoorden / 0 Vragen
0

Trouwens er is nog een heel klein probleempje... om een of andere reden werkt de script niet in Firefox...

ve
door verwijderd - Jan 7, 2007 om 13:04
0 Antwoorden / 0 Vragen
0

Het lijkt er sterk op dat Firefox dit ziet als onveilig (activeX) en het weigert uit te voeren.
Zoals het nu lijkt is de kortste klap in je html te zetten "Deze pagina werkt alleen met Internet Explorer"





<script type="text/javascript">



ve
door verwijderd - Jan 7, 2007 om 13:46
0 Antwoorden / 0 Vragen
0

maar hierzo: else if (document.implementation &&
document.implementation.createDocument)
  {
  xmlDoc=document.implementation.createDocument("","",null);
  xmlDoc.load("http://webmail.tabor.nl/werenfridus/Rooster/Dagelijkse_rooster/lk_xml1.xml");
xmlDoc.onload=getmessage;
 
  }


wordt volgens mij geen active X gebruikt want het checkt eerst of het firefox is of internet explorer

ve
door verwijderd - Jan 7, 2007 om 20:13
0 Antwoorden / 0 Vragen
0

Je hebt gelijk.
Het probleem lijkt te zijn dat mozilla geen xml bestanden van een ander domein inlaad (wat hier het geval is). Als je jouw script in hetzelfde pad als het xml-bestand zet zou het mogelijk wel lukken (?).

Op deze pagina vond ik daar iets over: http://www.agavegroup.com/?p=37

Via google moet wel meer info te vinden zijn, maar bovenstaande zou het probleem wel eens kunnen verklaren.

Heb de functie loadXML even aangepast met een error handler erin, probeer het maar eens:

var xmlDoc;
function loadXML()
{
// code for IE
if (window.ActiveXObject)
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async=false;
  xmlDoc.load("http://webmail.tabor.nl/werenfridus/Rooster/Dagelijkse_rooster/lk_xml1.xml");
  xmlDoc.load.getmessage();
  }
// code for Mozilla, Firefox, Opera, etc.
else
  {
  document.write("Mozilla o.i.d.");
  xmlDoc=document.implementation.createDocument("","",null);

// HIER GAAT HET MIS - >    try{xmlDoc.load("http://webmail.tabor.nl/werenfridus/Rooster/Dagelijkse_rooster/lk_xml1.xml");}
  catch(err) { alert(err.description); }

  xmlDoc.onload=getmessage;
  }
}





<script type="text/javascript">



ve
door verwijderd - Jan 7, 2007 om 23:08
0 Antwoorden / 0 Vragen
0

Bedankt, ik zal het morgen meteen proberen ^^


 

Terug naar de vraag

Nieuw op Vraag & Beantwoord

Ed
Edith vL - Sep 17, 2024 om 10:26
Vrije tijd & tuin

Electrische fiets gewonnen; 11 maanden later nog niet in huis

Mijn man heeft medio oktober 2023 met een winactie van Esso een elektrische fiets van Bayck gewonnen. We zouden binnen 2 weken gebeld worden voor het maken van een afspraak om de fiets te leveren. Dit gebeurde niet. 
Nadien is meer dan eens contact geweest met Bayck en Esso. Er zijn zelfs 2 data geweest waarop ze de fiets zouden bezorgen, maar die afspraken zijn op het laatste moment afgezeg ... Lees meer

S.
S.Lander - Aug 5, 2024 om 15:09
Winkels & webshops
Berkenbosch Mode

Berkenbosch Mode

Goedendag,

Ik heb bij een webshop winkel 3 jurkjes besteld. De jurkjes heb ik ontvangen. 2 van de 3 jurkjes wijken sterk af qua kleur en 1 jurkje is echt totaal een andere kleur. Namelijk zwart i.p.v. salie groen. Nu wil ik de jurkjes retourneren. Via de mail krijg ik antwoord dat ze de jurkjes niet terug willen nemen, want afgeprijsde artikelen nemen ze niet terug. Wel krijg een 25% ko ... Lees meer

Wi
Wim-Bart - Sep 19, 2024 om 14:45
Computers & telefonie

Delta kabel wil niet opleveren terwijl buren al maanden Delta hebben

Gechte,

2,5 jaar geleden is de kogel door de kerk en krijgen we Delta Kabel in Vianen. Na de nodige hobbels is onze wijk een paar maanden geleden opgeleverd.

Nu was er bij de oplevering van mijn adres iets fout gegaan, geen licht in de kabel of zo iets, maar daar is een monteur voor langs geweest. En boel (Volgens Circet) netjes afgemeld op 22 juli.

Afijn een week ... Lees meer