關於HTML使用ComDlg ActiveX 沒法彈出相應對話框的問題1

最近發現,開發的Web應用在客戶的某些IE(8,9,11)中彈出不了Windows的字體對話框。windows

經過 F12 跟蹤,錯誤代碼是「-2146827850」,錯誤信息是「 對象不支持ShowFont屬性和方法」安全

 

問題的緣由分析:測試

      應該是IE沒法正確載入相應的ActiveX控件引發的。幾種狀況字體

一、客戶電腦上沒有註冊好  ComDlg32.ocxthis

     解決方法:orm

  對於32位Windows: 把 ComDlg32.ocx 拷貝到 C:\windows\system32 目錄下;對象

      對於64位Windows: 把 ComDlg32.ocx 拷貝到 C:\windows\sysWOW64 目錄下;blog

  使用管理員身份,運行  regsvr32 C:\windows\system32\ComDlg32.ocxinternet-explorer

二、HTML中沒有按微軟的要求編寫ActiveX 的引用聲明開發

   若是缺乏如下代碼,也會出現之上的問題

   <object classid="clsid:5220cb21-c88d-11cf-b347-00aa00a28331">
         <param name="LPKPath" value="comdlg.lpk">
   </object> 

      解決方法:加入相應的聲明

 三、由於安全緣由,IE 禁止了相關 ActiveX控件的使用

    解決方法:使用regedit, 對於comdlg32.ocx 相應的註冊項是 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility{F9043C85-F6F2-101A-A3C9-08002B2F49FB},找到並刪除它。

  

參考連接:

http://stackoverflow.com/questions/1146872/comdlg32-ocx-error-object-doesnt-support-this-property-or-method

http://stackoverflow.com/questions/5705138/internet-explorer-9-ie9-hangs-after-closing-activex-form-e-g-common-dialog-c

https://support.microsoft.com/zh-cn/help/240797/how-to-stop-an-activex-control-from-running-in-internet-explorer
https://answers.microsoft.com/en-us/ie/forum/ie9-windows_7/ie9-internet-explorer-window-becomes-disabled-when/7bd351e9-c94f-e011-8dfc-68b599b31bf5

 

 

 

測試代碼:http://files.cnblogs.com/files/finema/ComDlgTest.rar

相關文章
相關標籤/搜索