如何使用JavaScript中的ActiveXObject 对象

如何使用JavaScript中的ActiveXObject 对象,第1张

使用JavaScript中ActiveXObject 对象的方法:

语法

newObj = new ActiveXObject(servernametypename[, location])

参数

newObj:必选。   ActiveXObject 分配到的变量名称。

servername:必选。  提供对象的应用程序的名称。

typename :必选。  要创建的对象的类型或类。

location:可选。  要在其中创建对象的网络服务器的名称。

备注

自动化服务器至少提供一种对象。  例如,字处理应用程序可能会提供应用程序对象、文档对象和工具栏对象。

你可以在 HKEY_CLASSES_ROOT 注册表项中标识宿主 PC 上的 servernametypename 值。  例如,下面是可在此处找到的几个值示例,具体取决于安装的程序:

ExcelApplication

ExcelChart

ScriptingFileSystemObject

WScriptShell

WordDocument

要求

在以下文档模式中受支持:Quirks、Internet Explorer 6 标准、Internet Explorer 7 标准、Internet Explorer 8 标准、Internet Explorer 9 标准、Internet Explorer 10 标准和 Internet Explorer 11 标准。  在 Windows 8x 应用商店应用中不受支持。  请参见JavaScript 版本信息。

应用相关方法

创建对象实例后,就可以使用对象的相关方法了。比如,使用CreateTextFile方法创建一个文本文件:var fso = new ActiveXObject(“ScriptingFileSystemObject”);var f1 = fsocreatetextfile(“c:\\myjstesttxt”,true”);

访问对象相关属性

要访问对象的相关属性,首先要建立指向对象的句柄,这就要通过get系列方法实现:GetDrive负责获取驱动器信息,GetFolder负责获取文件夹信息,GetFile负责获取文件信息。比如,指向下面的代码后,f1就成为指向文件c:\testtxt的句柄:var fso = new ActiveXObject(“ScriptingFileSystemObject”);var f1 = fsoGetFile(“c:\\myjstesttxt”);然后,使用f1访问对象的相关属性。比如:var fso = new ActiveXObject(“ScriptingFileSystemObject”);var f1 = fsoGetFile(“c:\\myjstesttxt”);alert(“File last modified: ” + f1DateLastModified);执行上面最后一句后,将显示c:\myjstesttxt的最后修改日期属性值。但有一点请注意:对于使用create方法建立的对象,就不必再使用get方法获取对象句柄了,这时直接使用create方法建立的句柄名称就可以:var fso = new ActiveXObject(“ScriptingFileSystemObject”);var f1 = fsocreatetextfile(“c:\\myjstesttxt”,true”);alert(“File last modified: ” + f1DateLastModified);

*** 作驱动器(Drives)

使用FileSystemObject对象来编程 *** 作驱动器(Drives)和文件夹(Folders)很容易,这就象在Windows文件浏览器中对文件进行交互 *** 作一样,比如:拷贝、移动文件夹,获取文件夹的属性。

Drives对象属性

Drive对象负责收集系统中的物理或逻辑驱动器资源内容,它具有如下属性:l TotalSize:以字节(byte)为单位计算的驱动器大小。l AvailableSpace或FreeSpace:以字节(byte)为单位计算的驱动器可用空间。l DriveLetter:驱动器字母。l DriveType:驱动器类型,取值为:removable(移动介质)、fixed(固定介质)、network(网络资源)、CD-ROM或者RAM盘。l SerialNumber:驱动器的系列码。l FileSystem:所在驱动器的文件系统类型,取值为FAT、FAT32和NTFS。l IsReady:驱动器是否可用。l ShareName:共享名称。l VolumeName:卷标名称。l Path和RootFolder:驱动器的路径或者根目录名称。

Drive对象 *** 作例程

下面的例程显示驱动器C的卷标、总容量和可用空间等信息:var fso, drv, s =”";fso = new ActiveXObject(“ScriptingFileSystemObject”);drv = fsoGetDrive(fsoGetDriveName(“c:\\”));s += “Drive C:” + ” – “;s += drvVolumeName + “\n”;s += “Total Space: ” + drvTotalSize / 1024;s += ” Kb” + “\n”;s += “Free Space: ” + drvFreeSpace / 1024;s += ” Kb” + “\n”;alert(s);

ActiveX 对象可能存在安全问题。 若要使用 ActiveXObject,你可能需要在相关安全区域的 Internet Explorer 中调整安全设置。 例如,对于本地 Intranet 区域,通常需要将自定义设置更改为“对没有标记为安全的 ActiveX 控件进行初始化和脚本运行”。

如果没有可用的自动化对象的参考文档,则要标识可以在代码中使用的自动化对象的成员,你可能需要使用 COM 对象浏览器,例如 OLE/COM 对象查看器。

为了提高速度,可能需要多人同时处理一张 Excel 表格。 Excel2007 为了满足这种需求,为我们提供了“共享工作簿”的功能。以下是我为您带来的关于Excel2007多人协同录入工作,希望对您有所帮助。

Excel2007共享多人协同录入工作

一、设置共享

启动Excel 2007,打开需要设置共享的工作薄文档,切换到“审阅”菜单选项卡中,单击“更改”组中的“共享工作薄”按钮,打开“共享工作薄”对话框,如下图所示。

在“编辑”选项卡中,选中“允许对各用户同时编辑,同时允许工作薄合并”选项。再切换到“高级”选项卡中,调整相关选项的设置。

设置完成后,单击“确定”按钮,软件会d出一个提示框,单击其中的“确定”按钮,完成工作薄的共享设置。

二、使用共享工作薄

将上述共享工作薄放到局域网中一台电脑的某个共享文件夹中。局域网中的每一位用户,都在各自的电脑上,启动Excel 2007,定位到上述共享文件夹中,打开共享工作薄,对其进行相关的编辑 *** 作,并执行保存 *** 作。

当局域网上其他用户要查看别人编辑的结果时,执行一下“保存” *** 作,系统会d出一个提示框,按下“确定”按钮接受这种修改。

此时,相应的单元格左上角出现一个蓝色的标记,同时相应单元格的行、列标号被红色突出显示出来。当我们将鼠标指向其中某个单元格时,会出现一个类似于“批注”的对话框,显示出该单元格中的数据修改信息。

三、建立修订日志

为了审核工作表中数据的需要,我们可以为用户的修改情况建立一个修订日志,仔细核查所有用户的修订情况。

切换到“审阅”菜单选项卡中,单击“更改”组中的“修订”按钮,在随后出现的下拉菜单中,选择“突出显示修订”选项,打开“突出显示修订”对话框,如下图所示。

按“时间“右边的下拉按钮,在随后出现的下拉菜单中,选择“全部”选项;再选中“修订人”/“每个人”。

全部设置完成后单击“确定”按钮,软件就会在该工作薄中新建一个“历史记录”工作表,里面保存着所有的修订情况记录。

四、取消共享

再次打开“共享工作薄”的对话框,在“编辑”选项卡中,取消选择“允许多用户同时编辑,同时允许工作薄合并”选项。单击“确定”按钮,软件会d出一个如下图所示的对话框,单击其中的“是(Y)”按钮,取消工作薄的共享功能。


Excel2007如何共享多人协同录入工作相关 文章 :

★ 2007excel表格如何多人同时编辑

★ 局域网怎么共享EXCEL为多人同时编辑

★ excel2007工作簿共用的设置教程

★ excel2007如何设置共享工作簿

★ 如何共享excel文档教程

★ excel2007如何共享

★ excel2007共享的设置方法

★ excel2007如何设置表格共享

★ excel2007共享工作簿的 *** 作教程

var _hmt = _hmt || []; (function() { var hm = documentcreateElement("script"); hmsrc = ">是的他们没有全局变量之说。但有别的办法可以实现。
只有当文件可同时访问定义在一个页面内的mainjs,才可实现同一个变量的共享
若1html,2html存在父子窗口关系,即其中一个是另一个open出来的,
则可以通过opener或windowdialogArguments在访问同一个页面mainjs内定义的变量,即可实现所谓的共享。
如果彼此不能共享一个页面里的mainjs,则无法互相访问。

1、对已有对象进行扩充方法和属性

 var object = new Object();
    objectname = "zhangsan";//每个对象需要写这些语句
    objectsayName = function(name){//每个对象需要写这些语句
        thisname = name;
    };
    objectsayName("lisi");
    alert(objectname);

2、工厂方式创建对象

 function createObject() {
        var object = new Object();
        objectusername = "zhangsan";
        objectpassword = "123456";
        objectget = function(){
            alert(thisusername + "," + thispassword);
        }
        return object;
    }
    var object1 = createObject();
    var object2 = createObject();
    object1get();
    object2get();
    // 带参数的构造方法
    function createObject(username, password){
        var object = new Object();
        objectusername = username;
        objectpassword = password;
        objectget = function(){//缺点是,多少个对象则方法就有多少个
            alert(thisusername + ", " + thispassword);
        }
        return object;
    }
    var object1 = createObject("zhangsan",123456);
    object1get();
    // 最佳改进方式
    function get(){//使该函数被多个对象共享
        alert(thisusername + ", " + thispassword);
    }
    function createObject(username, password){//创建对象
        var object = new Object();
        objectusername = username;
        objectpassword = password;
        objectget = get;
        return object;
    }
    var object1 = createObject("zhangsan", "123456");
    var object2 = createObject("wangwu", "654321");
    object1get();
    object2get();

3、构造函数方式创建对象

 function Person(){
        //在执行第一行代码欠,js引擎会为我们生成一个对象
        thisusername = "zhangsan";
        thispassword = "123";
        thisgetInfo = function(){
            alert(thisusername + ", " + thispassword);
        }
        //此处有一个隐藏的return语句,用于将之前生成对象返回。
    }
    var p1 = new Person();
    p1getInfo();
    //带参数
    function Person(username, password){
        thisusername = username;
        thispassword = password;
        thisgetInfo = function(){
            alert(thisusername + ", " + thispassword);
        }
    }
    var p1 = new Person("zhangsan","1234546");
    p1getInfo();

4、原型(“prototype”)方式

function Person(){}
    Personprototypeusername = "zhangsan";
    Personprototypepassword = "123456";
    PersonprototypegetInfo = function(){
        alert(thisusername + ", " + thispassword);
    }
    var person = new Person();
    var person2 = new Person();
    personusername = "haha";
    persongetInfo();
    person2getInfo();
    //单纯使用原型方式定义对象无法在构造函数中为属性赋值,只能在对象生成后再去改变属性值
    function Person(){}
    Personprototypeusername = new Array();
    Personprototypepassword = "123456";
    PersonprototypegetInfo = function(){
        alert(thisusername + ", " + thispassword);
    }
    var person = new Person();
    var person2 = new Person();
    personusernamepush("zhangsan");
    personusernamepush("lisi");
    personpassword = "321";
    persongetInfo();
    person2getInfo();

5、综合方式(原型+构造函数方式搭配)

  function Person(){
        thisusername = new Array();//不被多个对象共享
        thispassword = "123";
    }
    PersonprototypegetInfo = function()//被多个对象共享
    {
        alert(thisusername + "," + thispassword);
    }
    var p1 = new Person();
    var p2 = new Person();
    p1usernamepush("zhangsan");
    p2usernamepush("lisi");
    p1getInfo();
    p2getInfo();

6、动态原型方式

    function Person(){
        thisusername = "zhangsan";
        thispassword = "123";
        //通过标志量让所有的对象共享方法
        if(typeof Personflag == "undefined"){
            alert("prototype");
            PersonprototypegetInfo = function() {
                alert(thisusername + ", " + thispassword);
            }
            Personflag = true;
        }
    }
    var p = new Person();
    var p2 = new Person();
    pgetInfo();
    p2getInfo();


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13332903.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-16
下一篇 2023-07-16

发表评论

登录后才能评论

评论列表(0条)

保存