代码之家  ›  专栏  ›  技术社区  ›  Zev Spitz

如何使用Javascript在运行时以编程方式检查ActiveXObject?

  •  -1
  • Zev Spitz  · 技术社区  · 16 年前

    我希望为ActiveX对象创建一个Javascript库,从而实现链接能力。

    例如,我希望替换以下内容:

    var dbEngine=new ActiveXObject('DAO.DBEngine.36');
    var dbs=dbEngine.OpenDatabase('D:\\Todo.mdb');
    var rs=dbs.OpenRecordset('SELECT * FROM ListItems');
    

    使用类似的东西(一个jQuery):

    var rs=AX('DAO.DBEngine.36')
        .OpenDatabase('D:\\Todo.mdb')
        .OpenRecordset('SELECT * FROM ListItems');
    

    var rs=new ActiveXObject('DAO.DBEngine.36')
        .OpenDatabase('D:\\Todo.mdb')
        .OpenRecordset('SELECT * FROM ListItems');
    

    但是我无法从记录集对象访问数据库对象。

    为此,AX函数应该在内部创建DBEngine对象并检查其成员/属性,然后在返回的对象上公开相应的方法。

    如果成员/属性返回一个对象,则该对象本身将被包装在AX函数中返回。

    1 回复  |  直到 16 年前
        1
  •  1
  •   i_am_jorf    16 年前

    运行时只能检查实现IDispatchEx的对象。MSDN特别列出了IDispatch和 IDispatchEx

    IDispatch的所有服务也是如此 作为一些扩展 后期绑定语言,如脚本 语言。的附加功能 主要包括:

    向对象添加新成员 (“expando”)。

    区分大小写的调度操作。

    搜索具有隐式

    枚举对象的dispid

    从DISPID映射到元素名称。

    获取对象的属性

    使用此

    允许支持 对象的名称空间父对象。

    我已经大胆地提出了相关问题。

    由于并非所有ActiveX控件都将实现IDispatchEx(或者可能不会正确或完全实现IDispatchEx的所有方法),您是否希望使用特定的控件?

    推荐文章