1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
| <!DOCTYPE html>
<html>
<head>
<title>Test lien</title>
<script>
var docXML = null,
pages = [],
cpt_sequence = 0;
function loadFlux() {
try {
var fluxXML = '<racine><pages><page><nom>DVP</nom><url>http://developpez.com/</url><ms>5000</ms></page><page><nom>Wiki</nom><url>http://wikipedia.org</url><ms>5000</ms></page></pages></racine>',
detailInfos = '', classInfos = '';
if ( window.DOMParser )
docXML = new DOMParser().parseFromString(fluxXML, "text/xml");
else { // IE ...
docXML = new ActiveXObject('Microsoft.XMLDOM');
docXML.async = false;
docXML.loadXML(fluxXML);
}
// Détection si il y a des erreurs de parse (ne génère pas d'exception sinon)
if (docXML.getElementsByTagName('parsererror').length > 0)
throw "Erreur lors du chargement du flux XML : " + this.docXML.getElementsByTagName('parsererror')[0].textContent;
// Traitement document
for (var i = 0, page; (page = docXML.getElementsByTagName("page")[i]) != undefined; i++)
pages.push({
nom: page.getElementsByTagName("nom")[0].firstChild.nodeValue,
url: page.getElementsByTagName("url")[0].firstChild.nodeValue,
ms: page.getElementsByTagName("ms")[0].firstChild.nodeValue
});
// Résultats
detailInfos = 'Document XML traité avec succès';
classInfos = 'ok';
} catch(ex) {
detailInfos = ex;
classInfos = 'erreur';
} finally {
document.getElementById('conteneur-infos').innerHTML = detailInfos;
document.getElementById('conteneur-infos').className = classInfos;
if (classInfos == 'ok')
traiterSequence();
}
}
function traiterSequence() {
document.getElementById('resultat').src = pages[cpt_sequence].url;
document.getElementById('conteneur-infos').innerHTML += "<br><b>" + pages[cpt_sequence].nom + "</b> ["+ pages[cpt_sequence].url +"] s'affiche pendant " + (pages[cpt_sequence].ms/1000) + " sec";
setTimeout(traiterSequence, pages[cpt_sequence].ms);
cpt_sequence = (cpt_sequence == pages.length - 1) ? 0 : (cpt_sequence + 1);
}
</script>
<style>
div { width:500px; }
div#conteneur-infos { min-height: 35px; background:#eee; border: 1px solid #000; }
iframe#resultat { width:500px; min-height: 235px; }
.erreur { color: #f00; }
.ok { color: #00f; }
</style>
</head>
<body onload="loadFlux()">
<h1>Infos :</h1>
<div id="conteneur-infos"></div>
<h1>Résultats</h1>
<div id="conteneur-resultats">
<iframe id="resultat" scrolling="auto" src="" name="iframe"></iframe>
</div>
</body>
</html> |