資料夾選擇對話方塊 JS實現(轉)

weixin_34304013發表於2009-08-03
/**
* browseFolder.js
* 該檔案定義了BrowseFolder()函式,它將提供一個資料夾選擇對話方塊
* 以供使用者實現對系統資料夾選擇的功能
* 資料夾選擇對話方塊起始目錄由
* Shell.BrowseForFolder(WINDOW_HANDLE, Message, OPTIONS, strPath)函式
* 的strPath引數設定
* 例如:0x11--我的電腦
*    0 --桌面
*   "c:\\"--系統C盤
*
* 用如下程式碼把該函式應用到一個HTML檔案中:
*   <script src="browseFolder.js"></script>
* 或把下面程式碼直接COPY到<script language="javascript">...</script>標籤中;
*
* 用一般的觸發函式均可在HTML檔案中使用該函式
* 例如:<input type="button" onclick="BrowseFolder()" />
* 注意:請定義NAME為savePath的輸入框接收或顯示返回的值,例如:
*    <input type="text" name="savePath" />
*
* 特別注意的是,由於安全方面的問題,你還需要如下設定才能使本JS程式碼正確執行,
* 否者會出現"沒有許可權"的問題.
*
* 1、設定可信任站點(例如本地的可以為:http://localhost/
* 2、其次:可信任站點安全級別自定義設定中:設定下面的選項
* "對沒有標記為安全的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 + "\\";
     }
     document.all.savePath.value=Folder;
     return Folder;
   }
}catch(e){
   alert(e.message);
}
}

相關文章