本文介绍如何在IE浏览器中使用JavaScript调用Shell.Application ActiveX控件,实现弹出文件夹选择对话框并获取用户选定目录的完整路径。操作涉及启用IE安全设置中的ActiveX选项,代码通过BrowseForFolder方法返回路径字符串,需注意路径末尾反斜杠的处理及权限配置。
JS调用IE ActiveX控件实现文件夹选择并获取路径
如图所示:

该功能可以返回目录路径。
具体操作步骤如下:
function BrowseFolder(){
try{
var Message = "请选择文件夹"; //选择框提示信息
var Shell = new ActiveXObject( "Shell.Application" );
var Folder = Shell.BrowseForFolder(0,Message,0x0040,0x11);//起始目录为:我的电脑
//var Folder = Shell.BrowseForFolder(0,Message,0); //起始目录为:桌面
if(Folder != null){
Folder = Folder.items(); // 返回 FolderItems 对象
Folder = Folder.item(); // 返回 Folderitem 对象
Folder = Folder.Path; // 返回路径
if(Folder.charAt(Folder.length-1) != "\\"){
Folder = Folder + "\\";
}
return Folder;
}
return null;
}catch(e){
alert("请在ie设置中启用AcitveX控件相关选项。");
return null;
}
}
var Folder = BrowseFolder();
其中变量Folder即为选择目录并确定后返回的路径。
假设选中的是E盘的works目录,则返回值为E:\works\。
注意:有时可能会提示没有权限之类的,因为是客户端js操作,所以需要在internet选项的安全自定义里把ActiveX的一些选项给启用。