N-PN White-Hat Project
[JavaScript] faire de l'Ajax facilement - Version imprimable

+- N-PN White-Hat Project (https://dev.n-pn.fr/forum)
+-- Forum : Programmation (https://dev.n-pn.fr/forum/forumdisplay.php?fid=72)
+--- Forum : Langages interprétés (https://dev.n-pn.fr/forum/forumdisplay.php?fid=27)
+--- Sujet : [JavaScript] faire de l'Ajax facilement (/showthread.php?tid=1943)



[JavaScript] faire de l'Ajax facilement - InstinctHack - 02-03-2012

Je largue le code, je suis fatigué... les paramètres de la fonction sont simplement l'url de la page qu'on veut inclure et l'id est là ou il faut le mettre... on peut utiliser de façon automatique (régulierement) ou sur un évènement Smile
J'en suis l'auteur mais j'ai trouvé une ou deux astuces sur un autre site que j'ai assemblé Smile
il permet l’exécution du code js contenu dans la page à inclure (ce qui n'est pas le cas de la plupart des codes que j'ai trouvé Wink )
Code :
<html>
<head>
<script>
function ajax(id,url)
{
    var xmlHttp;
    try
    {
        xmlHttp=new XMLHttpRequest();// Firefox, Opera 8.0+, Safari
    }
    catch (e)
    {
        try
        {
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer
        }
        catch (e)
        {
            try
            {
                xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e)
            {
                alert("No AJAX!?");
                return false;
            }
        }
    }
    xmlHttp.onreadystatechange=function()
    {
        if(xmlHttp.readyState==4)
        {
            document.getElementById(id).innerHTML=xmlHttp.responseText;
            var js = document.getElementById(id).getElementsByTagName('script');
            for( var i in js )
            {
                eval(js[i].text);
            }
        }
        else
        {
            document.getElementById(id).innerHTML = "Chargement en cours ...<br />";
        }
    }
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);
}

function refresh()
{
    ajax("elm1", "include.php");
    setTimeout('refresh()',500); //en miliseconde
}
</script>
</head>
<body onload="refresh();">
<div id="elm1"></div>
</body>
</html>