Tuesday, November 14, 2006

Qu'est ce que l'Air Guitar?

Tout le monde a, au moins une fois dans sa vie, fait semblant de jouer de la guitare sur un de ces airs de musique préférés. On a tous révé d'être un Clapton, Townsend ou Page... Vous ne le saviez peut être pas mais dans ces moments de "folie" vous jouiez de l'air guitar... Si vous ne me croyez pas regardez plutôt cette video du championnat annuel de air guitar :





vous pouvez pousser le concept encore un peu plus loin : je vous propose de faire du air band comme dans Scrubs...

Monday, November 13, 2006

Ajax - Blogger - ListURL

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:
  1. 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.

  2. getlist() : la fonction que j'appelle dans la page html : c'est dans cette fonction qu'on va rechercher l'information...
  3. displayresponse() : on récupère du XML qu'il faut remettre en forme: c'est justement le but de cette fonction.
Mon problème est que je n'arrive pas à récupérer les données sur http://wolverinex02.googlepages.com


<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>