Internet explorer 如何检测IE9中的用户已禁用附加组件?

Internet explorer 如何检测IE9中的用户已禁用附加组件?,internet-explorer,com,activex,internet-explorer-9,bho,Internet Explorer,Com,Activex,Internet Explorer 9,Bho,IE9用户可以通过单击cog按钮并选择“管理附加组件”来禁用附加组件,例如浏览器辅助对象。我需要使用JavaScript检测给定的加载项是否以这种方式被禁用 我似乎找不到一种方法来处理我的错误处理程序(没有脚本可访问的机制允许您可靠地区分未安装的加载项与已安装和已禁用的加载项 通常,页面也无法知道是否安装了BHO,即使它已启用,除非BHO显式公开DOM可访问属性 您可以通过使用API进行ActiveX筛选来检测ActiveX附加组件是否被禁用。Eric, 你觉得这种把戏怎么样 该插件将脚本注入

IE9用户可以通过单击cog按钮并选择“管理附加组件”来禁用附加组件,例如浏览器辅助对象。我需要使用JavaScript检测给定的加载项是否以这种方式被禁用


我似乎找不到一种方法来处理我的错误处理程序(
没有脚本可访问的机制允许您可靠地区分未安装的加载项与已安装和已禁用的加载项

通常,页面也无法知道是否安装了BHO,即使它已启用,除非BHO显式公开DOM可访问属性

您可以通过使用API进行ActiveX筛选来检测ActiveX附加组件是否被禁用。

Eric, 你觉得这种把戏怎么样

  • 该插件将脚本注入用户访问的每个页面
  • 大约每隔一秒钟,脚本向加载项发送一条“心跳请求”消息。加载项应发送“确认”响应
  • 如果加载项没有响应,脚本将假定加载项已被禁用或卸载,并通知服务器
(这个想法是借用自)


谢谢

谢谢Eric。如果我可以推荐一个功能,我认为当页面请求一个因性能原因而被禁用的BHO时,应该向用户显示一个警告。否则,他们就不知道为什么该页面不能正常工作。我不确定你说的“请求BHO”是什么意思。一般来说,页面不能“请求”BHO——他们可以请求ActiveX控件(例如,使用上面的OBJECT标记),但BHO通常不可供页面访问。页面可以通过将回退内容放入对象标记中来检测ActiveX控件何时丢失/禁用。从可靠性和性能角度来看,这样做会非常可怕。我不同意。在每个页面中注入几百字节的脚本,然后执行每秒的耳塞请求/响应几乎不应该被注意到。