J'ai plusieurs blogs et mettre à jour tous les templates est vraiment galère. Je cherche actuellement un moyen élégant pour pouvoir modifier toutes mes listes d'url d'un coup avec un seul fichier à modifier... Qui sait, je finirais peut-être par trouver un moyen pour étendre cette méthode à d'autres éléments de la page... Si quelqu'un veut bien m'aider pour régler un petit problème ou 2. J'utilise la technologie Ajax pour récuperer les données dans le fichier listurl.xml, que je veux mettre sur mon compte http://wolverinex02.googlepages.com ... J'ai fini par régler le problème du onload en ajoutant une petite image... En effet l'évenement onload ne peut agir que sur body, les framset et img... Or si je veux pouvoir ajouter facilement ce code à mon blog sur betablogger, j'ai besoin de code portable: il n'est donc pas question de modifier body, donc l'image était la meilleure solution...Je finirais peut_être par la remplacer par une image de 1px... Mais j'aime bien mon Wolverine alors qui vivra verra. Comme vous pouvez le voir j'utilise trois fonction:
- getXMLHTTP() : c'est une fonction générique que j'utilises pour tous mes application Ajax: vous pouvez la copier et la garder bien au chaud dans un coin.
- getlist() : la fonction que j'appelle dans la page html : c'est dans cette fonction qu'on va rechercher l'information...
- displayresponse() : on récupère du XML qu'il faut remettre en forme: c'est justement le but de cette fonction.
<script>
function getXMLHTTP()
{
var xhr = null;
if(window.XMLHttpRequest)
{ // Firefox et autres
xhr = new XMLHttpRequest();
}
else if(window.ActiveXObject)
{ // Internet Explorer
try
{
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e1)
{
xhr = null;
}
}
}
else
{
alert("Your browser does not support XMLHTTPRequest objects...");
}
return xhr;
}
function getlist() {
var XHR = getXMLHTTP();
XHR.open("GET","http://wolverinex02.googlepages.com/listurl.xml",true);
XHR.onreadystatechange = function()
{
if (XHR.readyState == 4) {
document.getElementById("list_links").innerHTML=displayresponse(XHR);
}
else {
document.getElementById("list_links").innerHTML="Wait...";
}
}
XHR.send(null);
}
function displayresponse(XHR) {
var docXML=XHR.responseXML;
var root = docXML.getElementsByTagName("listsite")[0];
var items = root.getElementsByTagName("site");
var result="<ul>";
for(i=0;i<items.length;i++) {
var item = items[i];
result+="<li><a href=\""+item.getElementsByTagName('url')[0].firstChild.nodeValue+"\">"+item.getElementsByTagName('title')[0].firstChild.nodeValue+"</a></li>";
}
result+="</ul>";
return result;
}
</script>
<img onLoad="getlist()" src="http://wolverinex02.googlepages.com/movie_x-men_wolverine_2.gif" />
<div id="list_links">
</div>
Tags:
Aucun commentaire:
Enregistrer un commentaire