Forum de discussion
Forum « Programmation Javascript » (archives)
Re: [AJAX] Fontion JS sans effet
Envoyé: 5 avril 2006, 15h47 par Oznog
Il peut y avoir plusieurs raisons. Tu test la réponse du serveur, (200, 404...) alors localement ça ne fonctionne pas. D'un autre côté, tu test l'état du XML mais pas celui du XSL.
Regarde cet exemple (http://www.trucsweb.com/Javascript/Ajax/twXSLT.htm
), il n'y a pas de validation mais il fonctionne :
Document XML #1 : http://www.trucsweb.com/Javascript/Ajax/twXSLT.xml
Document XML #2 : http://www.trucsweb.com/Javascript/Ajax/twXSLT2.xml
Document XSL : http://www.trucsweb.com/Javascript/Ajax/twXSLT.xsl
Le code :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xml:lang="fr-ca" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>twXSL-Transformation - Trucsweb.com</title>
<script type="text/javascript" language="javascript">
function twChargeXML(sURL){
// Trucsweb.com (2006)
if (window.XMLHttpRequest) {
var myXMLHTTPRequest = new XMLHttpRequest();
} else {
var myXMLHTTPRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
myXMLHTTPRequest.open("GET", sURL, false);
myXMLHTTPRequest.send(null);
return myXMLHTTPRequest.responseXML;
}
function twTransformeXML(sXML,sXSL,sId){
// Trucsweb.com (2006)
var oXSL = twChargeXML(sXSL);
var oXML = twChargeXML(sXML);
if (window.XSLTProcessor) {
var xsltProcessor = new XSLTProcessor();
xsltProcessor.importStylesheet(oXSL);
var fragment = xsltProcessor.transformToFragment(oXML, document);
document.getElementById(sId).innerHTML = "";
var myDOM = fragment;
document.getElementById(sId).appendChild(fragment);
} else {
var target = document.getElementById(sId);
target.innerHTML = oXML.transformNode(oXSL);
}
}
</script>
</head>
<body>
<a href="javascript:twTransformeXML('twXSLT.xml', 'twXSLT.xsl', 'ctrlDocument')">Texte 1</a> - <a href="javascript:twTransformeXML('twXSLT2.xml', 'twXSLT.xsl', 'ctrlDocument')">Texte 2</a>
<div id="ctrlDocument"></div>
</body>
</html>
Ciao
Oznog
Réponses
|