adaptation code load_page ajax et js
Bonjour, voila ma situation actuelle:
jai une page principale avec un menu flash deroulant et selon les boutons il y a un code , par exmple:
Code:
1 2 3 4
|
on (press,release){
getURL ("javascript:load_page('?contenu/son/home_cinema')", "_top");
} |
Ce code est traité dans un fichier ajax.js inclu dans ma page principal.
Ce fichier ajax.js contient la fonction pour le xhr:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
// JavaScript Document
/*************************************************
Fonction de definition de l'object xhr
**************************************************/
function new_xhr(){
var xhr_object = null;
if(window.XMLHttpRequest) // Firefox et autres
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr_object = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr_object = false;
}
return xhr_object;
} |
et une fonction pour charger la page ne recupérant via GET le nom du "fichier" à charger:
Code:
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
|
/*****************************************************
Fonction qui va recharger le contenu
******************************************************/
function load_page(select) {
doAjaxAction('corps','select.split('?')[1]+".php"'); // Met la ResponseText brute dans l'élément MonElement.
doAjaxAction('','select.split('?')[1]+".php"'); // Exécute mon code JS.
var xhr2 = new_xhr();//On crée un nouvel objet XMLHttpRequest
xhr2.onreadystatechange = function(){
if ( xhr2.readyState == 4 ){//Actions executées une fois le chargement fini
if(xhr2.status != 200){//Message si il se preoduit une erreur
document.getElementById("corps");
document.getElementById("corps").innerHTML ="Error code " + xhr2.status;
} else {//On met le contenu du fichier externe dans la div "content"
document.getElementById("corps");
alert("Reponse script externe:" +xhr2.responseText);
var tmp = xhr2.responseText;
document.getElementById("corps").innerHTML= tmp;
}
}
}
xhr2.open("GET", select.split('?')[1]+".php", true);//Appel du fichier externe
xhr2.send(null);
} |
Cependant ma page de l'exmple home_cinema contient du js car elle contient des listes deroulantes liées.
J'ai donc une fonction mise dans ajax.js qui sert à lire le code js, la voici:
Code:
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
|
/****************************************
fonction pour interpreter js
*****************************************/
function doAjaxAction(Ele,File)
{
var myajax = new createAjaxObject();
myajax.open("GET", File, true);
myajax.onreadystatechange = function()
{
if (myajax.readyState == 4 && myajax.status == 200)
{
if ( document.getElementById(Ele) )
{
document.getElementById(Ele).innerHTML = myajax.responseText;
}
else
{
eval(myajax.responseText);
}
}
}
myajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
myajax.send(null);
} |
Cependant elle aussi se charge de charger le contenu, je voudrais donc l'adapter pour quelle charge l contenu html et js des page et que le "fichier" a charger soit recupéré de la même sorte que mon load_page précédent seulement la c'est chaud!
Comment procédé? merci