|
Mise à jour : 07/12/2010
Difficulté :
Intermédiaire
5 975 visites depuis 7 jours
, dont 157 sur ce chapitre
, classé 32/777
|
![]() Méthode | ![]() Internet Explorer | ![]() Firefox | ![]() Opera | ![]() Google Chrome | ![]() Safari |
|---|---|---|---|---|---|
| DOMImplementation | Oui avec ActiveX |
Oui |
Oui |
Non |
Non |
1 | if (document.implementation) { } |
1 | if (document.implementation && document.implementation.createDocument) { } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | function getDOMImplementation(sUrl, fCallback) { var dom; if (window.ActiveXObject) { dom = new ActiveXObject("Microsoft.XMLDOM"); dom.onreadystatechange = function() { if(dom.readyState == 4) { fCallback(dom); } }; } else if (document.implementation && document.implementation.createDocument) { dom = document.implementation.createDocument("", "", null); dom.onload = function() { fCallback(dom); } } else { alert("Votre navigateur ne gère pas l'importation de fichiers XML"); return; } dom.load(sUrl); } |
1 2 3 4 5 6 | <?xml version="1.0" encoding="iso-8859-1"?> <topic> <author>Thunderseb</author> <country>Belgium</country> <lang>French</lang> </topic> |
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 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <link href="mep.css" rel="stylesheet" type="text/css" media="all" /> <title>Techniques AJAX - DOMImplementation - XML Statique</title> <script type="text/javascript" src="oDOMImplementation.js"></script> <script type="text/javascript"> <!-- function getData(oData) { var author = oData.getElementsByTagName('author')[0].firstChild.data; var country = oData.getElementsByTagName('country')[0].firstChild.data; var lang = oData.getElementsByTagName('lang')[0].firstChild.data; alert(author + ' - ' + country + ' - ' + lang); } //--> </script> </head> <body> <h1>Techniques AJAX - DOMImplementation - XML Statique </h1> <p> <input type="button" value="Récupérer les données" onclick="getDOMImplementation('DOMImplementation_1.xml', getData);" /> </p> </body> </html> |

1 | <input type="button" value="Récupérer les données" onclick="getDOMImplementation('DOMImplementation_2.php?Pseudo=Thunderseb', getData);" /> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <?php header("Content-Type: text/xml"); echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>"; echo "<topic>"; if (isset($_GET['Pseudo'])) { $pseudo = $_GET['Pseudo']; if ($pseudo == 'Thunderseb') { echo '<author>Thunderseb</author>'; echo '<country>Belgium</country>'; echo '<lang>French</lang>'; } else if ($pseudo == 'Laurence') { echo '<author>Laurence</author>'; echo '<country>Belgium</country>'; echo '<lang>French</lang>'; } } echo "</topic>"; ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?xml version="1.0" encoding="utf-8"?> <bds> <!-- PIERRE TOMBAL --> <serie name="Pierre Tombal"> <bd num="4" title="des os pilants" /> <bd num="5" title="ô suaires" /> <bd num="12" title="la pelle aux morts" /> <bd num="21" title="k.os" /> <bd num="22" title="ne jouez pas avec la Mort !" /> <bd num="24" title="on s'éclate mortels !" /> </serie> <!-- LES PROFS --> <serie name="Les Profs"> <bd num="2" title="loto et colles" /> <bd num="3" title="tohu-bahut" /> <bd num="4" title="rentrée des artistes" /> <bd num="5" title="chute des cours" /> <bd num="9" title="rythme scolaire" /> </serie> <!-- et ça continue, encore et encore, c'est que le début, d'accord d'accord... --> </bds> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <fieldset> <legend>Sélection de la série</legend> <form id="bdForm" method="get" action=""> <div> <label for="serieName">Choisir une série : </label> <!-- On écrira le SELECT dans le SPAN ci-dessous --> <span id="outputListDiv"><em>Liste des séries non chargée...</em></span> </div> <p><input type="button" value="Afficher les BD de cette série" onclick="displayBD();" /></p> </form> </fieldset> <fieldset id="outputBDFieldset"> <legend>BD en ma possession</legend> <!-- On écrira la TABLE avec la liste des albums dans le DIV ci-dessous --> <div id="outputBDDiv"></div> </fieldset> |
1 2 3 4 5 | var DOMXML = null; window.onload = function() { DOMImplementation('data.xml', getData); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | function getData(oData) { DOMXML = oData; var series = oData.getElementsByTagName("serie"); var sorted = []; // Classement par ordre alphabétique, via tableau à 2 dimensions for (var i=0, c=series.length; i<c; i++) { sorted.push([series[i].getAttribute("name"), i]); } sorted.sort(); // Génération du SELECT var list = "<select name=\"serieName\" id=\"serieName\">\n"; for (var i=0, c=sorted.length; i<c; i++) { list += "<option value=\"" + sorted[i][1] + "\">" + sorted[i][0] + "</option>\n"; } list += "</select>\n"; document.getElementById("outputListDiv").innerHTML = list; } |
1 | <input type="button" value="Afficher les BD de cette série" onclick="displayBD();" /> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | function displayBD() { // récup' de l'id de la série, écrit dans la VALUE de l'OPTION with (document.getElementById("serieName")) var idSerie = parseInt(options[selectedIndex].value); var serie = DOMXML.getElementsByTagName("serie")[idSerie]; var bds = serie.getElementsByTagName("bd"); // Création de la TABLE avec les résultats var table = "<table class=\"sortable\" width=\"100%\">\n"; table += "<tr><th width=\"20\">N°</th><th>Titre de l'album</th></td>\n"; for (var i=0, c=bds.length; i<c; i++) { table += "<tr><td>" + bds[i].getAttribute("num") + "</td><td>" + bds[i].getAttribute("title") + "</td></tr>\n"; } table += "</table>\n"; document.getElementById("outputBDDiv").innerHTML = table; } |
