天天看點

new ActiveXObject("Scripting.FileSystemObject") 未能建立對象的解決方法

JavaScript中ActiveXObject對象是啟用并傳回 Automation 對象的引用。使用方法:
newObj = new ActiveXObject( servername.typename[, location])
ActiveXObject 對象文法有這些部分:
其中newObj是必選項。要指派為 ActiveXObject 的變量名。
servername是必選項。提供該對象的應用程式的名稱。
typename是必選項。要建立的對象的類型或類。
location是可選項。建立該對象的網絡伺服器的名稱。
Automation伺服器至少提供一類對象,例如字處理應用程式可能提供應用程式對象、文檔對象和工具欄對象。
           

項目中有一個頁面JavaScript代碼通過ActiveXObject建立FileSystemObject實作檔案的讀取。

function Login() {
      var fso;
      var filePath;
      try {
          fso = new ActiveXObject("Scripting.FileSystemObject");
      }
      catch (exp) {
          alert("要生成該報表,必須将浏覽器須設定為可使用“ActiveX控件”。如有疑問,請點選浏覽器的“幫助”了解浏覽器設定方法!");
      } 
      filePath = fso.BuildPath("c:\\files", "test.txt"); //生成路徑 
      alert(filePath); 
 }
           

但每次浏覽器都報錯未能建立對象.

F12開發者模式調試時發現:運作至new ActiveXObject這行時,automation伺服器未能建立對象。

解決方法:

IE浏覽器->工具->Internet選項->安全->自定義級别->設定

->“對未标記為可安全執行腳本的ActiveX控件初始化并執行腳本”設定為啟用,确定即可。

注意:

啟用此選項隻可用于調試本地代碼,在通路其它網站前一定記得改過來。

否則惡意腳本将通過IE具有讀、寫、周遊你本地檔案等的全部權限!

其他相關知識及問題解決方案的博文參考:

1.FileSystemObject 對象模型

2.FileSystemObject詳解

3.ActiveXObject函數詳解

4.關于IIS無法建立'Scripting.FileSystemObject'對象

繼續閱讀