ActiveXObject 对象
启用和返回对自动化对象的援用。
此对象仅用于实例化自动化对象,且此对象没有成员。
正告:此对象为 Microsoft 扩大,仅在 Internet Explorer 中受支撑,在 Windows 8.x 运用市肆运用中不受支撑。
语法:
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
注重:
ActiveX
对象能够存在平安问题。 若要运用 ActiveXObject,你能够须要在相干平安地区的 Internet Explorer 中调解平安设置。 比方,关于当地 Intranet 地区,平常须要将自定义设置更改成“对没有标记为平安的 ActiveX 控件举行初始化和剧本运转
”。
若要竖立自动化对象,请将新的 ActiveXObject 分配给对象变量:
var ExcelApp = new ActiveXObject("Excel.Application");
var ExcelSheet = new ActiveXObject("Excel.Sheet");
此代码启动竖立对象的运用顺序(在此示例中,为 Microsoft Excel 事情表)。 在竖立某个对象后,可在代码中运用已定义的对象变量援用该对象。 鄙人面的示例中,运用对象变量 ExcelSheet 和其他 Excel 对象(包含运用顺序对象和 ActiveSheet.Cells 鸠合)来接见新对象的属性和要领。
// Make Excel visible through the Application object.
ExcelSheet.Application.Visible = true;
// Place some text in the first cell of the sheet.
ExcelSheet.ActiveSheet.Cells(1,1).Value = "This is column A, row 1";
// Save the sheet.
ExcelSheet.SaveAs("C:\\TEST.XLS");
// Close Excel with the Quit method on the Application object.
ExcelSheet.Application.Quit();
请求
在以下文档形式中受支撑:Quirks、Internet Explorer 6 规范、Internet Explorer 7 规范、Internet Explorer 8 规范、Internet Explorer 9 规范、Internet Explorer 10 规范和 Internet Explorer 11 规范。 在 Windows 8.x 运用市肆运用中不受支撑。
FileSystemObject 对象
在IE浏览器中完成文件的操纵功用,还得须要FileSystemobject
对象。
运用FileSystemObject
对象举行编程很简单,平常要经由以下的步骤: 竖立FileSystemObject
对象、运用相干要领、接见对象相干属性 。
竖立FileSystemObject对象
var fso = new ActiveXObject("Scripting.FileSystemObject");
上述代码实行后,fso就成为一个FileSystemObject对象实例。
运用相干要领
竖立对象实例后,就可以够运用对象的相干要领了。比方,运用CreateTextFile
要领竖立一个文本文件:
var fso = new ActiveXObject("Scripting.FileSystemObject");
var f1 = fso.createtextfile("c:\myjstest.txt",true");
接见对象相干属性
要接见对象的相干属性,首先要竖立指向对象的句柄,这就要经由过程get系列要领完成:GetDrive
担任猎取驱动器信息,GetFolder
担任猎取文件夹信息,GetFile
担任猎取文件信息。比方,指向下面的代码后,f1就成为指向文件c: est.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);
但有一点请注重:关于运用create要领竖立的对象,就没必要再运用get要领猎取对象句柄了,这时候直接运用create要领竖立的句柄称号就可以够:
var fso = new ActiveXObject("Scripting.FileSystemObject");
var f1 = fso.createtextfile("c:\myjstest.txt",true");
alert("File last modified: " + f1.DateLastModified);
实例
1.猎取上传文件的大小
html代码:
<input type="file" id="filePath" onchange="getFileSize(this)"/>
js代码:
//兼容IE9低版本猎取文件的大小
function getFileSize(obj){
var filesize;
if(obj.files){
filesize = obj.files[0].size;
}else{
try{
var path,fso;
path = document.getElementById('filePath').value;
fso = new ActiveXObject("Scripting.FileSystemObject");
filesize = fso.GetFile(path).size;
}
catch(e){
//在IE9及低版本浏览器,假如不容许ActiveX控件与页面交互,点击了否,就没法猎取size
console.log(e.message); //Automation 服务器不能竖立对象
filesize = 'error'; //没法猎取
}
}
return filesize;
}
2.限定上传文件的范例
假如是高版本浏览器,平常在HTML代码中写就可以完成,如:
<input type="file" name="filePath" accept=".jpg,.jpeg,.doc,.docxs,.pdf">
假如限定上传文件为图片范例,以下:
<input type="file" class="file" value="上传" accept="image/*"/>
但是在别的低版本浏览器就不管用了,须要js来推断。
html代码:
<input type="file" id="filePath" onchange="limitTypes()"/>
js代码:
/* 经由过程扩大名,磨练文件花样。
*@parma filePath{string} 文件途径
*@parma acceptFormat{Array} 许可的文件范例
*@result 返回值{Boolen}:true or false
*/
function checkFormat(filePath,acceptFormat){
var resultBool= false,
ex = filePath.substring(filePath.lastIndexOf('.') + 1);
ex = ex.toLowerCase();
for(var i = 0; i < acceptFormat.length; i++){
if(acceptFormat[i] == ex){
resultBool = true;
break;
}
}
return resultBool;
};
function limitTypes(){
var obj = document.getElementById('filePath');
var path = obj.value;
var result = checkFormat(path,['bmp','jpg','jpeg','png']);
if(!result){
alert('上传范例毛病,请从新上传');
obj.value = '';
}
}
注:固然这个实例2在这儿没有用到上面的学问,只是依据实例1遐想到了。
参考
ActiveXObject 对象 (JavaScript):https://msdn.microsoft.com/li…
JS、ActiveXObject、Scripting.FileSystemObject :http://www.cnblogs.com/dingji…