解决方案1:
调用windows 的shell,但会有安全问题.
* browsefolder.js
* 该文件定义了browsefolder()函数,它将提供一个文件夹选择对话框
* 以供用户实现对系统文件夹选择的功能
* 文件夹选择对话框起始目录由
* shell.browseforfolder(window_handle, message, options, strpath)函数
* 的strpath参数设置
* 例如:0x11--我的电脑
* 0 --桌面
* c:\\--系统c盘
*
* 用如下代码把该函数应用到一个html文件中:
*
* 或把下面代码直接copy到标签中;
* 特别注意的是,由于安全方面的问题,你还需要如下设置才能使本js代码正确运行,
* 否者会出现没有权限的问题.
*
* 1、设置可信任站点(例如本地的可以为:http://localhost)
* 2、其次:可信任站点安全级别自定义设置中:设置下面的选项
* 对没有标记为安全的activex控件进行初始化和脚本运行----启用
browserfolder.js:
复制代码 代码如下:
/**//***
path 要显示值的对象id
****/
function browsefolder(path) {
try {
var message = \u8bf7\u9009\u62e9\u6587\u4ef6\u5939; //选择框提示信息
var shell = new activexobject(shell.application);
var folder = shell.browseforfolder(0, message, 64, 17);//起始目录为:我的电脑
//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 + \\;
}
document.getelementbyid(path).value = folder;
return folder;
}
}
catch (e) {
alert(e.message);
}
}
使用的时候:
复制代码 代码如下:
value=选择生成路径 />
2.解决方案二:
自己写一个js读取本地硬盘的选择框, 缺点是外观上较上一个差一些.
复制代码 代码如下: