前言
今天同事詢問,在 JS 中透過 new ActiveXObject 會發生 SCRIPT429: Automation 伺服程式無法產生物件 的錯誤。
當然,環境是 IE ,而且將安全性等級設定到了低,還是無法建立物件。
解決
於是建立一個簡單的 html 來測試,如下,
1 |
|
透過 ie 來瀏覽網頁,在 Console 果然出現錯誤,如下,

如果只針對建立 ActiveX 物件的話,應該是調整安全性設定。
因為我的測試網頁是使用 localhost ,所以它是在 近端內部網路 的區域,

所以就調整 近端內部網路 的安全性等級,

在裡面有很多關於 ActiveX 的設定,大部份都是提示,
其中 將未標示成安全的 ActiveX 控制項初始化並執行指令碼 它是停用的,所以就將它改成「提示」,
畫面上就會跑出提示訊息詢問是否要啟用 ActiveX ,如下,

當使用者按下 是(Y) 就會建立 WScript.Shell ActiveX 物件。
所以將 JS 調整成,建立物件後,顯示一個訊息,如下,
1 |
|
所以當使用者按下 是(Y) 就會建立 WScript.Shell ActiveX 物件,並顯示訊息視窗,如下,

當然,如果設定成 啟用 那就不會詢問,直接執行了哦!
註: 會使用 ActiveX 當然是有它的時空背景。或許可以討論看看,能不能以別種方式來解決。
參考資料
起始不標示為安全的 ActiveX 控制項
FIX: The Automation server can’t create object error