Bonjour

Je n'arrive pas à trouver la bonne méthode permettant d'identifier la configuration de mon navigateur afin d'utiliser la méthode adaptée pour charger un xml issu de webservice.


Mon code javascript lance la fonction postHTML()

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
 
//Chargement des fichiers XML et XSL pour les navigateurs Firefox Chrome Opera ... 
function loadXML(xmlPath) 
{ 
   var xmlhttp = new window.XMLHttpRequest(); 
   xmlhttp.open("GET", xmlPath, false); 
   xmlhttp.send(null); 
   var xmlDoc = xmlhttp.responseXML.documentElement; 
   return xmlDoc; 
} 
 
// Generation du rendu 
function postHTML(xmlPath, xslPath, page, elementId) 
{ 	
	var plugin = navigator.plugins["Contoso.Control"];
	var ActixeXPoss='N';
	if(plugin){
		// Contoso control is installed and enabled
		alert("Contoso control is installed and enabled");
	}
	else{
		try{
			plugin = new ActiveXObject("Contoso");
			ActixeXPoss='O';
		}
		catch(e){
			// Contoso control is not installed or disabled
			alert("Contoso control is not installed or disabled");
		}
	}
	if(ActixeXPoss == 'N'){
		// script pour tous les navigateurs Firefox Opera ... 
		alert("pas avec IE");
 
  	  	// Chargement XML 
		var xslDocument = loadXML(xslPath); 
                // Chargement XSL 
		var xmlDocument = loadXML(xmlPath); 
 
		var xsltProcessor=new XSLTProcessor(); 
		xsltProcessor.importStylesheet(xslDocument); 
		var htmlCode = xsltProcessor.transformToFragment(xmlDocument,document); 
		document.getElementById(elementId).appendChild(htmlCode); 
 
		var racine = xmlDocument;
   } 
   else{ 
      if (window.ActiveXObject){ 
		// script pour IE 
		alert("avec IE");
		// Chargement XML 
		var xml = new ActiveXObject("Microsoft.XMLDOM"); 
		xml.async = false; 
		xml.load(xmlPath); 
 
		// Chargement XSL 
		var xsl = new ActiveXObject("Microsoft.XMLDOM"); 
		xsl.async = false; 
		xsl.load(xslPath); 
		// Transformation 
		//alert("Element récepteur = " + elementId);
		document.getElementById(elementId).innerHTML = xml.transformNode(xsl); 
 
		var racine = xml.documentElement;
      } 
      else{ 
    	  alert("Transformation Xslt non supportée !");
    	  document.getElementById(elementId).innerHTML = "Xslt non supporté"; 
      } 
   }
Auparavant ma méthode était légèrement différente, mais problème car n'étant pas compatible avec ie11.