IE9 -> SCRIPT438: Object doesn't support this property or method.
	
	
		Bonjour tout le monde,
J'ai un petit souci avec le script ci-dessous et ce uniquement sous IE 9. Cela fonctionne parfaitement sous Firefox, Safari, Chrome et Opera car eux ne chargent pas un objet ActiveX.
	Code:
	
| 12
 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
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
 184
 185
 186
 
 |  
function ShowDashBoard() {
    // show wait message
    document.getElementById("wait_message").style.visibility = "visible"; //wait message ON
 
    // Clear message content
    document.getElementById("error_msg").textContent = "";
    document.getElementById("success_msg").textContent = "";
    // Hide message boxes
    document.getElementById("error_message_status").style.visibility = "hidden";
    document.getElementById("success_message_status").style.visibility = "hidden";
 
    // Create variables to get mainlog datas
    startday    = document.getElementById('startday').value;
    startmonth  = document.getElementById('startmonth').value;
    startyear   = document.getElementById('startyear').value; 
    endday      = document.getElementById('endday').value;    
    endmonth    = document.getElementById('endmonth').value;  
    endyear     = document.getElementById('endyear').value;   
    startofdate = startday + "-" + startmonth + "-" + startyear;
    endofdate   = endday + "-" + endmonth + "-" + endyear;
    building    = document.getElementById('SelectedBuilding').value;
    userid      = document.getElementById('userid').value;
    userrole    = document.getElementById('userrole').value;
 
    // Select company link to the userrole (Admin or others)
    if (userrole == '1') { company = document.getElementById('SelectedCompany').value; }
    else { company = document.getElementById('company').value; }
 
    // create xmlhttprequest according browser or abort function
    if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); } else if (window.ActiveXObject) { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } else { alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");return; }
    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) ShowXMLfile();
    };
 
    var url = "getdashboarddatas.php?SDA=" + startofdate + "&EDA=" + endofdate + "&CPY=" + company +  "&BIN=" + building + "&UID=" + userid + "&URO=" + userrole;
 
    xmlhttp.open("GET", url, true);
    xmlhttp.send(null);
}
 
// ***************************************************************
// Functions which load and show dashboard from XML/XSLT files
// Load and Show XML File
function ShowXMLfile() {
 
    // Reset previous Dashboard content
    document.getElementById("dashboardcontent").innerHTML = '';
 
    // reset TextResult
    BuildXMLfileResult = ""; 
 
    BuildXMLfileResult = xmlhttp.responseText;
 
    // check if the build of the dashboard.xml file was done without error.
    if (BuildXMLfileResult == "SUCCESS") {
 
        if(building == "all")
        {
            xmlfile = "data/" + company + "/dashboard.xml";
        }
        else
        {
            xmlfile = "data/" + company + "/" + building + "/dashboard.xml";
        }
        xslfile = "xml/dashboard.xsl";
 
        // Code for Internet Explorer
        if (window.ActiveXObject) {
            var xslDoc;
            var xmlDoc;
            var xlt;
            var xslProc;
 
            // load XSLT sheet
            xslDoc = new ActiveXObject("Msxml2.XSLTemplate.6.0");
            xslDoc.async = false;
            xslDoc.load(xslfile);
 
            //load XML file
            xmlDoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument.6.0");
            xmlDoc.async = true;
            xmlDoc.onreadystatechange = function () {
                if (xmlDoc.readyState == 4) {
                    xslProc.transform();
 
                    //show result
                    document.getElementById("dashboardcontent").innerHTML = '';
                    document.getElementById("dashboardcontent").innerHTML = xslProc.output;
                }
            }
 
            //Transformation
            xslt = new ActiveXObject("Msxml2.XSLTemplate.6.0");
            xslt.stylesheet = xslDoc;
            xslProc = xslt.createProcessor();
            xslProc.input = xmlDoc;
 
            // load XML file in async mode
            xmlDoc.load(xmlfile);
       }
 
        // Code for other browsers using XSLTProcessor()
        else {
            var xsl_http = getXMLHttp();
            var xml_http = getXMLHttp();
            var xsl;
            var xml;
 
            xsl_http.onreadystatechange = function () {
                if (xsl_http.readyState == 4 && xsl_http.status == 200) {
                    // On récupère le contenu du fichier xsl
                    xsl = xsl_http.responseXML;
                    xml_http.onreadystatechange = function () {
                        if (xml_http.readyState == 4 && xml_http.status == 200) {
                            // Traitement de l'affichage
                            // *************************
 
                            // On récupère le contenu du fichier xml
                            xml = xml_http.responseXML;
                            xsltProcessor = new XSLTProcessor();
                            xsltProcessor.importStylesheet(xsl);
                            // Rendu de l'affichage
                            resultDocument = xsltProcessor.transformToFragment(xml, document);
                            // Affichage dans la page web
                            document.getElementById("dashboardcontent").innerHTML = '';
                            document.getElementById("dashboardcontent").appendChild(resultDocument);
                            // ********************************
                            // Fin de traitement de l'affichage
                        }
                    }
                    xml_http.open("GET", xmlfile, true);
                    xml_http.send();
                }
            }
 
            xsl_http.open("GET", xslfile, true);
            xsl_http.send();
        }
    }
    else if (BuildXMLfileResult == "ERROR") 
    {
        // Set Error message content
        document.getElementById("error_msg").textContent = "Une erreur s'est produite lors de la construction du fichier XML. Veuillez contacter le support...";
        // Show Error message box
        document.getElementById("error_message_status").style.visibility = "visible";
        document.getElementById("success_message_status").style.visibility = "hidden";
    }
 
 
    // hide wait message
    document.getElementById("wait_message").style.visibility = "hidden"; //wait message OFF
 
}
 
// Used to get XML file
function getXMLHttp()
{
	var xmlHttp
	try
	{
		//Firefox, Opera 8.0+, Safari
		xmlHttp = new XMLHttpRequest();
	}
	catch(e)
	{
		//Internet Explorer
		try
		{
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e)
		{
			try
			{
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e)
			{
				alert("Votre navigateur ne permet pas d'utiliser cet outil")
				return false;
			}
		}
	}
	return xmlHttp;
} | 
 L'erreur survient dans le bloc suivant (la ligne "xslDoc.async = false;") de la fonction ShowXMLfile() :
	Code:
	
| 12
 3
 4
 5
 
 |  
// load XSLT sheet
          xslDoc = new ActiveXObject("Msxml2.XSLTemplate.6.0");
            xslDoc.async = false;
            xslDoc.load(xslfile); | 
 Le détail du message d'erreur est :
SCRIPT438: Object doesn't support this property or method 
dashboard.js, line 255 character 13
Je retourne le Web et ce forum depuis 24 heures mais pas moyen de trouver la solution. Il y a bien sûr des erreurs relevées qui tourne autour de ce message d'erreur qui semble un message d'erreur fourre-tout. Quelques-uns concernent surtout "jquery/Ajax" (Mise à niveau à faire) mais pas directement JavaScript et encore moins avec cette manière standard (me semble-t-il) de créer un objet ActiveX.
Si l'un de vous a une idée ou une piste, elle est la bienvenue. 
Merci d'avance.
Alain