activexobject,谷歌怎么设置ActiveXObject
大家好,关于activexobject很多朋友都还不太明白,今天小编就来为大家分享关于谷歌怎么设置ActiveXObject的知识,希望对各位有所帮助!
如何使用JavaScript中的ActiveXObject 对象
使用JavaScript中ActiveXObject对象的方法:
语法
newObj= new ActiveXObject(servername.typename[, location])
参数
newObj:必选。ActiveXObject分配到的变量名称。
servername:必选。提供对象的应用程序的名称。
typename:必选。要创建的对象的类型或类。
location:可选。要在其中创建对象的网络服务器的名称。
备注
自动化服务器至少提供一种对象。例如,字处理应用程序可能会提供应用程序对象、文档对象和工具栏对象。
你可以在HKEY_CLASSES_ROOT注册表项中标识宿主 PC上的servername.typename值。例如,下面是可在此处找到的几个值示例,具体取决于安装的程序:
Excel.Application
Excel.Chart
Scripting.FileSystemObject
WScript.Shell
Word.Document
要求
在以下文档模式中受支持:Quirks、Internet Explorer 6标准、Internet Explorer 7标准、Internet Explorer 8标准、Internet Explorer 9标准、Internet Explorer 10标准和 Internet Explorer 11标准。在 Windows 8.x应用商店应用中不受支持。请参见JavaScript版本信息。
应用相关方法
创建对象实例后,就可以使用对象的相关方法了。比如,使用CreateTextFile方法创建一个文本文件:var fso= new ActiveXObject(“Scripting.FileSystemObject”);var f1= fso.createtextfile(“c:\\myjstest.txt”,true”);
访问对象相关属性
要访问对象的相关属性,首先要建立指向对象的句柄,这就要通过get系列方法实现:GetDrive负责获取驱动器信息,GetFolder负责获取文件夹信息,GetFile负责获取文件信息。比如,指向下面的代码后,f1就成为指向文件c:\test.txt的句柄:var fso= new ActiveXObject(“Scripting.FileSystemObject”);var f1= fso.GetFile(“c:\\myjstest.txt”);然后,使用f1访问对象的相关属性。比如:var fso= new ActiveXObject(“Scripting.FileSystemObject”);var f1= fso.GetFile(“c:\\myjstest.txt”);alert(“File last modified:”+ f1.DateLastModified);执行上面最后一句后,将显示c:\myjstest.txt的最后修改日期属性值。但有一点请注意:对于使用create方法建立的对象,就不必再使用get方法获取对象句柄了,这时直接使用create方法建立的句柄名称就可以:var fso= new ActiveXObject(“Scripting.FileSystemObject”);var f1= fso.createtextfile(“c:\\myjstest.txt”,true”);alert(“File last modified:”+ f1.DateLastModified);
操作驱动器(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(“Scripting.FileSystemObject”);drv= fso.GetDrive(fso.GetDriveName(“c:\\”));s+=“Drive C:”+”–“;s+= drv.VolumeName+“
”;s+=“Total Space:”+ drv.TotalSize/ 1024;s+=” Kb”+“
”;s+=“Free Space:”+ drv.FreeSpace/ 1024;s+=” Kb”+“
”;alert(s);
ActiveX对象可能存在安全问题。若要使用 ActiveXObject,你可能需要在相关安全区域的 Internet Explorer中调整安全设置。例如,对于本地 Intranet区域,通常需要将自定义设置更改为“对没有标记为安全的 ActiveX控件进行初始化和脚本运行”。
如果没有可用的自动化对象的参考文档,则要标识可以在代码中使用的自动化对象的成员,你可能需要使用 COM对象浏览器,例如 OLE/COM对象查看器。
导入编码出现activexobjectisnotdefined应该怎么解决
答案:
出现“ActiveXObject is not defined”错误通常是由于编码问题导致的,尤其是在涉及ActiveX控件时。以下是解决此问题的几个步骤:
解决方案:
1.检查浏览器兼容性:确保你使用的浏览器支持ActiveX控件。某些旧版浏览器可能不支持ActiveX,因此需要在更新版本的浏览器中运行代码。
2.启用ActiveX控件:如果你正在使用支持ActiveX的浏览器,检查是否已经启用了ActiveX控件。浏览器的安全设置可能会阻止ActiveX控件的加载,需要调整这些设置以允许控件运行。
3.更新编码和库文件:确保你的代码和相关库文件是最新的。有时候,库文件的版本不匹配或代码中存在错误也可能导致此类问题。更新到最新版本通常可以解决这些问题。
4.使用其他技术替代ActiveX:如果上述方法均无法解决问题,可以考虑使用其他技术替代ActiveX控件。例如,HTML5和JavaScript等现代Web技术可以提供类似的功能而无需使用ActiveX。
详细解释:
当你在网页开发或运行时遇到“ActiveXObject is not defined”错误,这通常意味着浏览器无法识别或加载ActiveX控件。ActiveX是微软的一种技术,主要用于Windows操作系统中的Internet Explorer浏览器,用于提供丰富的互联网应用程序功能。但该技术在非IE浏览器或新版本的浏览器中可能不再支持。解决这个问题,首先可以尝试确认你的浏览器是否支持ActiveX控件,如果不支持则需要更换浏览器或使用其他技术替代。其次,如果浏览器支持但需要特殊设置来允许ActiveX运行,需要调整浏览器的安全设置来启用它。再者,也可能是由于代码或库文件的问题导致的错误,此时可以尝试更新相关代码和库文件到最新版本。最后,如果问题依然存在,考虑采用不依赖ActiveX的技术来实现相同的功能,这样可以避免与浏览器兼容性问题相关的麻烦。
总之,针对“ActiveXObject is not defined”错误,关键在于确保浏览器兼容性、正确配置ActiveX设置、更新编码和库文件以及考虑使用替代技术等步骤来解决。
如何在Windows下的V8/Nodejs中实现ActiveXObject
1.网上找的实现方法
网上找了半天,没有一个实现的解决方案。那些大侠们的江湖可能都是Linux,从来不操心Windows的。找到唯一靠谱的解决方案如下:
参见1:用nodejs访问ActiveX对象,以操作Access数据库为例。这个总体上来说是利用Windows自带的脚本解释器来调用ActiveXObject,然后将处理结果返回给主进程。由于是两个进程之间的数据交换,也就只能局限于类文本数据;而涉及到动态对象的交换,就无能为力。但是,作为处理中间交换结果的简单小型的解决方案来说,还是可以的。
参见2:我是如何用 V8脚本引擎替换JScript的。这个绝对是最彻底的解决方案,而且成文时间比较早,都在2009年。可惜作者懒了,以后就没有下文了。即便找到作者的工作室雨寒工作室主要原创作品预览,也是需要等待发布。
然后然后就只能靠自己了。
2.实现ActiveXObject的几种方法
其实以前用IE自带的JScript引擎,实现自己的应用程序和js相互调用,为自己的应用程序添加脚本支持,已经知道JScript的原理:一切皆组件,一切皆IDispatch和IDispatchEx。但是V8绝对不会支持微软的COM组件的,也就谈不上去实现Jscript中的大门ActiveXObject了;这也宣告利用V8时,不能方便简单的使用微软的组件。真是可惜啊!
其实让V8、NodeJS在Windows下来支持微软的组件一定可行的。动手实现之前想的三个方法是:
要用哪个组件,就将该组件动态转换为JS对象。
当然可以提供应用工具实现,其实就是遍历一个组件的接口类型库信息
难点在于方对象和子对象的层层连接
速度会比较快,因为事先已经将所有的方法或属性固定已知了,都省去根据名称找方法一步
比较浪费。如果有时只想调用组件中的几个方法而已的话
想在JS层次上拦截对方法或属性的调用,统一变成调用IDispatch::Invoke。
利用JS的AOP之类技术等等;或者eval、apply等函数
AOP大多数都是对已知对象方法属性的代理;但是组件引入在js中却是未知属性和方法,只有在调用时转成Invoke
如何在V8引擎中拦截脚本的属性或方法调用,转换为IDispatch::Invoke调用。
利用拦截器可以实现对所有方法和属性的访问,并转到IDispatch::Invoke这个函数中
要处理V8::Value和VARIANT的数据之间相互转换
对于对象的属性又是对象这种情况一定要处理好
注意优化,避免内存泄露
这几种方法,第一种知道可行,但是没有做;第二种宣告失败;第三种历经波折多次柳暗花明和死胡同交相辉映,但大抵宣告成功还有点瑕疵。
3.如何实现ActiveXObject的一种最简单方法
还有两个细节没有处理明白:
V8的String如何转换为BSTR,总是失败
NodeJS的addon插件,居然存在内存泄露。压根就没有释放掉ObjectWrap。自带的例子也如是!
解决完这两个bug后再放上代码。
activexobject的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于谷歌怎么设置ActiveXObject、activexobject的信息别忘了在本站进行查找哦。