首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未定义ActiveXObject

未定义ActiveXObject
EN

Stack Overflow用户
提问于 2009-11-14 06:41:16
回答 3查看 5.4K关注 0票数 0

我的程序是使用javascript在网页上获取员工的详细信息。这在IE5,6,8中是成功的,但不能运行Mozilla Firefox。请帮帮我..。

提前感谢

我的源代码是:

代码语言:javascript
复制
<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>
EN

回答 3

Stack Overflow用户

发布于 2009-11-14 06:47:15

ActiveX对象是Internet的专有对象。如果有相同的功能,您必须在其他浏览器中找到相应的对象来执行相同的功能。你必须展示你正在做的事情,以便在如何让它发挥作用方面更加具体。

票数 1
EN

Stack Overflow用户

发布于 2009-11-14 06:56:44

假设您指的是Ajax,那么使用一个抽象的XHR函数,它支持XMLHttpRequest和IE特定的ActiveX对象。

代码语言:javascript
复制
/** XHConn - Simple XMLHTTP Interface - bfults@gmail.com - 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
EN

Stack Overflow用户

发布于 2009-12-04 19:00:13

火狐中没有ActiveX支持,也无法连接到Access数据库。这些都是专有的微软技术。

我也不相信浏览器端ODBC支持;在这一点上我可能是错的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1733511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档