最近发现,开发的Web应用在客户的某些IE(8,9,11)中弹出不了Windows的字体对话框。

通过 F12 跟踪,错误代码是“-2146827850”,错误信息是“ 对象不支持ShowFont属性和方法”

问题的原因分析:

应该是IE无法正确载入相应的ActiveX控件引起的。几种情况

1、客户电脑上没有注册好  ComDlg32.ocx

解决方法:

  对于32位Windows: 把 ComDlg32.ocx 拷贝到 C:\windows\system32 目录下;

对于64位Windows: 把 ComDlg32.ocx 拷贝到 C:\windows\sysWOW64 目录下;

  使用管理员身份,运行  regsvr32 C:\windows\system32\ComDlg32.ocx

2、HTML中没有按微软的要求编写ActiveX 的引用声明

   如果缺少以下代码,也会出现之上的问题

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

解决方法:加入相应的声明

3、因为安全原因,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

关于HTML使用ComDlg ActiveX 无法弹出相应对话框的问题1的更多相关文章

  1. C# 禁止 Webbrowser 控件的弹出脚本错误对话框

    当IE浏览器遇到脚本错误时浏览器,左下 角会出现一个黄色图标,点击可以查看脚本错误的详细信息,并不会有弹出的错误信息框.当我们使用 WebBrowser控件时有错误信息框弹出,这样程序显的很不友好,而 ...

  2. JS实现弹出层对话框

    点击按钮后,弹出层对话框,可交互,点击关闭后才关闭掉对话框. 效果图: 源码: <!doctype html> <html> <head> <meta cha ...

  3. ASP.NET点击按钮弹出确认对话框方法

    开发asp.net网页应用程序的时候,有些页面的按钮需要增加一个确认对话框,比如: 实现这个功能比较简单,代码这样写: Button.Attributes["onclick"] = ...

  4. 弹出消息对话框ScriptManager

    //直接调用WebMessageBox方法 #region 弹出消息对话框 /// <summary> /// 弹出消息对话框 /// </summary> /// <p ...

  5. Windows服务弹出MessageBox对话框

    Windows服务弹出MessageBox对话框 自从Windows升级到Vista版本后,系统服务就不在允许弹出那些惨绝人寰的MessageBox了(至于为什么不让弹出,原理有点小复杂,我也不是很门 ...

  6. 每日学习心得:CustomValidator验证控件验证用户输入的字符长度、Linq 多字段分组统计、ASP.NET后台弹出confirm对话框,然后点击确定,执行一段代码

    2013-9-15 1.    CustomValidator验证控件验证用户输入的字符长度 在实际的开发中通常会遇到验证用户输入的字符长度的问题,通常的情况下,可以写一个js的脚本或者函数,在ASP ...

  7. jQuery Dialog弹出层对话框插件

    Dialog.js的相关注释已经添加,可以按照注释,进行相关样式的修改,适用于自定义的各个系统! dialog.js /** * jQuery的Dialog插件. * * @param object ...

  8. ASP.net后台弹出消息对话框的方法!【转】

          在winform后台,我们通过MessageBox.show(“消息")的方式来返回后台信息,在webform后台,我们通过Response.write(”消息")来返 ...

  9. MFC弹出模拟对话框

    Windows对话框分为两类:模态对话框和非模态对话框. 模态对话框是这样的对话框,当它弹出后,本应用程序其他窗口将不再接受用户输入,只有该对话框响应用户输入,在对它进行相应操作退出后,其他窗口才能继 ...

随机推荐

  1. 拼接SQL语句缺少“break”

    1.错误描述 [ERROR:]2015-07-20 16:42:21,734 [插入失败] org.hibernate.exception.SQLGrammarException: error exe ...

  2. PL/SQL集合 ----- varrays

    varrays可以再表,记录,对象定义中使用,类似于C中的数组. 1.定义varrays用作PL/SQL程序构造块. declare type integer_varray ) of integer; ...

  3. Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 't.statis_date'

    1.错误原因 [ERROR:]2015-04-18 13:20:31,883 [异常拦截] com.skycloud.oa.exception.ExceptionHandler org.hiberna ...

  4. 芝麻HTTP:Python爬虫入门之Urllib库的基本使用

    1.分分钟扒一个网页下来 怎样扒网页呢?其实就是根据URL来获取它的网页信息,虽然我们在浏览器中看到的是一幅幅优美的画面,但是其实是由浏览器解释才呈现出来的,实质它是一段HTML代码,加 JS.CSS ...

  5. tcp_wrapper

    介绍 对基于tcp协议开发并提供服务的应用程序,所提供的一层访问控制工具 基于库调用实现其功能 * 库名:libwrap 判断服务是否能够由tcp_wrapper进行访问控制 1. 动态编译 ldd命 ...

  6. AI CV 会议2018

    (1) NIPS,  Conference and Workshop on Neural Information Processing Systems, A类顶会 1987年由联结主义学派创建,每年一 ...

  7. Linux之shell典型应用之脚本实现

    一. 提取Linux操作系统信息 二. 获取操作系统运行状态 三. 分析应用状态 四. 应用日志分析 第一章:VIM编辑器设置 一.语法高亮     syntax on/off 二.显示行号 set ...

  8. [HNOI2015]亚瑟王

    题面在这里 题意 \(n\)张卡按照一定顺序排列,每轮从第\(1\)张开始考虑到最后一张,考虑一张卡时有\(p[i]\)的概率产生\(d[i]\)的贡献,产生贡献时直接退出该轮并在之后的考虑中直接跳过 ...

  9. iOS开发中常见bug!(内附解答方法)

    序言 你是否曾经修复了一个 bug ,随后又发现了一个跟刚修复 bug 有关的 bug ,又或是修复 bug 的方式引起了另一个 bug ? 然而这些问题是绝佳的学习机会.所以我们怎样尽可能多地从修复 ...

  10. 2018第一波iOS经典笔试题(现场实拍)

    序言 作为一个开发者,眼里不仅仅只存在于那一行又一行的代码,更还有那诗和远方. 注明:面试是对自我审视的一种过程,面试题和iOS程序员本身技术水平没任何关联,无论你能否全部答出,都不要对自己产生任何正 ...