JS中通过创建ActiveXObject对象来访问本地计算机上的COM组件,进而实现很多常规语言无法实现的操作。
前提条件
- ActiveXObject只能在IE浏览器中使用
- 计算机上需要安装相应的COM组件
创建ActiveXObject对象
ActiveXObject()构造函数用于创建新的ActiveXObject对象。
语法:
var varname = new ActiveXObject(servername.typename[version])
参数说明:
* servername
:必选项,创建对象的服务器名称,可以为“WScript.Shell”、“Scripting.FileSystemObject”等内置的COM对象的名称。如果省略,则默认为本地计算机。
* typename
:必选项,指定创建对象的类型,即COM的ProgID或CLSID。
* version
:可选项,指定ProgID的版本号。如果省略,则自动使用最新版本。
示例一:使用WScript.Shell对象
<script>
function getComputerName()
{
var myShell = new ActiveXObject("WScript.Shell");
var computerName = myShell.ExpandEnvironmentStrings("%computername%");
document.getElementById("result").innerHTML = "计算机名:" + computerName;
}
</script>
<button onclick="getComputerName()">获取计算机名</button>
<p id="result"></p>
在以上示例中,点击按钮后,JS会调用WScript.Shell对象来获取当前计算机的计算机名,并将结果显示在页面上。
说明:
- 该例中通过调用WScript.Shell对象中的ExpandEnvironmentStrings方法来获取系统变量;
- 由于该方法返回的是字符串类型的计算机名,因此不需要进行类型转换。
示例二:操作文件系统
<script>
function deleteFile()
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
var filePath = "C:\\test.txt";
if (fso.FileExists(filePath))
{
fso.DeleteFile(filePath);
document.getElementById("result").innerHTML = "文件删除成功!";
}
else
{
document.getElementById("result").innerHTML = "文件不存在!";
}
}
</script>
<button onclick="deleteFile()">删除文件</button>
<p id="result"></p>
在以上示例中,点击按钮后,JS会调用Scripting.FileSystemObject对象来删除C盘根目录下的“test.txt”文件,并将结果显示在页面上。
说明:
- 该例中通过调用Scripting.FileSystemObject对象中的FileExists方法来判断文件是否存在;
- 如果文件存在,则通过调用DeleteFile方法来删除文件。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js之ActiveX控件使用说明 new ActiveXObject() - Python技术站