Forum de discussion
Forum « Programmation Javascript » (archives)
[AJAX] Fontion JS sans effet
Envoyé: 31 mars 2006, 7h16 par LoK
J'ai crée un ensemble de fonction JS (à partir de scripts trouvés un peu partout sur internet) dont le but est de charger un fichier XML et un fichier XSL puis de transformer le fichier XML grâce au XSL et d'afficher la transformation dans un bloc.
Voici mon code :
[code]
<html>
<head>
<title>Test 4</title>
<script type="text/javascript" language="javascript">
function transform(xml, xsl, id) {
try { /* Navigateur basé sur Gecko. */
if (window.XSLTProcessor) {
var fragment;
var xsltProcessor = new XSLTProcessor();
xsltProcessor.importStylesheet(xsl);
fragment = xsltProcessor.transformToFragment(xml, document);
var target = document.getElementById(id);
target.appendChild(fragment);
document.appendChild(target);
}
else if (window.ActiveXObject) { /* ActiveX pour Internet Explorer. */
var target = document.getElementById(id);
target.innerHTML = xml.transformNode(xsl);
}
}
catch (e) {
return e;
}
}
function serv_reponse() {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
var xmldoc = http_request.responseXML;
}
else {
alert('Un problème est survenu avec la requête.');
}
}
}
function load_xml(url) {
http_request = false;
if (window.XMLHttpRequest) {
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType('text/xml');
}
}
else if (window.ActiveXObject) {
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {}
}
}
if (!http_request) {
alert('Impossible de créer une instance XMLHTTP');
return false;
}
http_request.onreadystatechange = serv_reponse;
http_request.open('GET', url, true);
http_request.send(null);
return http_request;
}
function load_file(xml_charger, xsl_charger, id) {
var xml = load_xml(xml_charger);
var xsl = load_xml(xsl_charger);
var fichier = transform(xml, xsl, id);
}
</script>
</head>
<body>
<a href="#" onclick="load_file('test.xml', 'test.xsl', 'zone')">Faut que ca marche !</a>
<div id="zone"></div>
</body>
</html>[/code]
Voici en quelques mots ce que j'essaye de faire :
1/. Au clik de la souris, la fonction "load_file" est appelée et elle a 3 arguments : l'adresse d'un fichier xml, l'adresse d'un fichier xsl et un l'id d'un bloc.
2/. Les fichiers XML et XSL sont chargés grâce à aux appels à la fonction "load_xml".
3/. La fonction "transform" est appelée afin de transformer le fichier XML en un ficher XHTML grâce au fichier XSL puis elle affiche le tout dans l'id du bloc.
Lorsque je clique sur le lien de ma page, rien ne se passe ([url=http://pragmatus.free.fr/Test/test4.html]Test[/url]), je vous demande donc votre aide pour faire fonctionner mon code.
Merci à ceux qui m'aideront,
LoK.
Réponses
|