2009-11-14 3 views
0

Mon programme obtient les détails des employés dans la page Web en utilisant javascript. Cela fonctionne avec succès dans IE5,6,8. mais ne fonctionne pas Mozilla Firefox. Aidez-moi s'il vous plaît ...ActiveXObject n'est pas défini

Merci à l'avance

Mon code source est:


<script type="text/javascript"> 
<!-- 
var adOpenDynamic = 2; 
var adLockOptimistic = 3; 

/* Path of database. 
*/ 
var strDbPath = "..\\SRVGdb.mdb"; 

/* 
Here is the ConnectionString for Microsoft Access. 
If you want to use SQL or other databases, you hav to change the connection string.. 
eg: SQL => var conn_str = "Provider=sqloledb; Data Source=itdev; Initial Catalog=pubs; User ID=sa;Password=yourpassword"; 
*/ 
var conn_str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strDbPath; 

function getAdoDb(strAdoType){ 
if (window.ActiveXObject){ 
return new ActiveXObject(strAdoType); 
} 
else{ 
return ActiveXObject(strAdoType); 
} 
} 

function showReports(){ 
try{ 
var tablevar="<table width=\"100%\" border=\"1\">" 
        +" <tr><td></td>" 
        +" </tr>"; 

//Database Connection 
var conn = getAdoDb("ADODB.Connection"); 
conn.open(conn_str, "", ""); 

//Recordset 
var rs = new ActiveXObject("ADODB.Recordset"); 
strQuery = "SELECT * FROM GuestBook"; 
rs.open(strQuery, conn, adOpenDynamic, adLockOptimistic); 

if(!rs.bof){ 
rs.MoveFirst(); 

while(!rs.eof) { 

    if(document.layers){ 
     document.getElementById("one").open(); 

     document.getElementById("one").close(); 
    } 
    else{ 

tablevar+=" <tr>" 
        +" <td>"+"Sur Name: <br> Fore Name: <br> Home Address: <br> PinCode: <br> Contact Number: <br> E-mail: <br> Date of Birth: <br> Nationality: <br> University: <br> Available Timings: <br> Interested Courses: <br> Other Courses: <br> Expected Money: <br> Any More Information: <br> "+"</td>" 
        +" <td>"+rs.fields(0).value+"<br>"+rs.fields(1).value+"<br>"+rs.fields(2).value+"<br>"+rs.fields(3).value+"<br>"+rs.fields(4).value+"<br>"+rs.fields(5).value+"<br>"+rs.fields(6).value+"<br>"+rs.fields(7).value+"<br>"+rs.fields(8).value+"<br>"+rs.fields(9).value+"<br>"+rs.fields(10).value+"<br>"+rs.fields(11).value+"<br>"+rs.fields(12).value+"<br>"+rs.fields(13).value+"<br></td>" 
     +" </tr>"; 

    document.getElementById("one").innerHTML=tablevar; 

} 

    rs.MoveNext(); 
    } 
} 
else{ 

    if(document.layers){ 
     document.getElementById("one").open(); 

     document.getElementById("one").close(); 
    } 
    else{ 

     document.all("one").innerHTML="No Records To Display."; 

    } 
//No Records. 

} 
conn.close(); 


tablevar+= "</table>"; 

}catch(ex){ 
alert(ex.message); 
} 
} 

//--> 
</script> 

Répondre

1

objets ActiveX sont propriétaires à Internet Explorer. Vous devrez trouver l'objet équivalent pour effectuer la même fonctionnalité dans d'autres navigateurs, s'il y en a un. Vous devez montrer ce que vous faites exactement pour être plus précis sur la façon de le faire fonctionner.

0

En supposant que vous faites référence à Ajax, utilisez une fonction XHR abstraite qui prend en charge XMLHttpRequest et les objets ActiveX spécifiques à IE.

/** XHConn - Simple XMLHTTP Interface - [email protected] - 2005-04-08  ** 
** Code licensed under Creative Commons Attribution-ShareAlike License  ** 
** http://creativecommons.org/licenses/by-sa/2.0/       **/ 
function XHConn() 
{ 
    var xmlhttp, bComplete = false; 
    try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } 
    catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } 
    catch (e) { try { xmlhttp = new XMLHttpRequest(); } 
    catch (e) { xmlhttp = false; }}} 
    if (!xmlhttp) return null; 
    this.connect = function(sURL, sMethod, sVars, fnDone) 
    { 
    if (!xmlhttp) return false; 
    bComplete = false; 
    sMethod = sMethod.toUpperCase(); 

    try { 
     if (sMethod == "GET") 
     { 
     xmlhttp.open(sMethod, sURL+"?"+sVars, true); 
     sVars = ""; 
     } 
     else 
     { 
     xmlhttp.open(sMethod, sURL, true); 
     xmlhttp.setRequestHeader("Method", "POST "+sURL+" HTTP/1.1"); 
     xmlhttp.setRequestHeader("Content-Type", 
      "application/x-www-form-urlencoded"); 
     } 
     xmlhttp.onreadystatechange = function(){ 
     if (xmlhttp.readyState == 4 && !bComplete) 
     { 
      bComplete = true; 
      fnDone(xmlhttp); 
     }}; 
     xmlhttp.send(sVars); 
    } 
    catch(z) { return false; } 
    return true; 
    }; 
    return this; 
} 


/* assuming you already have XHConn.js included in your HTML file */ 

var myConn = new XHConn(); 

if (!myConn) alert("XMLHTTP not available. Try a newer/better browser."); 

var fnWhenDone = function (oXML) { alert(oXML.responseText); }; 

myConn.connect("mypage.php", "POST", "foo=bar&baz=qux", fnWhenDone); 
0

Il n'y a pas de support ActiveX dans Firefox et aucun moyen de se connecter à une base de données Access. Ce sont des technologies Microsoft propriétaires.

Je ne crois pas qu'il existe un support ODBC côté navigateur non plus; Je peux me tromper sur ce point.