IE浏览器脚本,用于确定哪个(如果有)ActiveX控件将处理特定的mime类型

Jay*_*y13 7 javascript vbscript internet-explorer quicktime

我试图在IE脚本(javascript或vbscript)中找出哪个ActiveX控件将处理特定的mime类型,在这种情况下为"image/tiff".这在使用插件的其他浏览器中很容易做到;

navigator.mimeTypes [ "图像/ TIFF"].enabledPlugin.name

这将返回类似的东西

QuickTime插件XXX

我已经找到了很多例子来判断是否加载了一个特定的ActiveX控件,但由于有几个可用的ActiveX控件可以处理tiff图像,我需要知道哪个(如果有的话)已经注册来处理这个mime类型.

我正在尝试处理的问题是QuickTime总是希望将自己注册为默认的tiff查看器,但它做得很糟糕,导致大量的支持调用.不幸的是,仅仅检测到安装QuickTime是不够好的,因为用户可能还安装了另一个tiff查看器(如Alternatiff)作为默认的tiff查看器,或者用户可能已将QuickTime配置为不是tiff图像的默认查看器,因此浏览器可能正在使用帮助应用程序来显示图像.

并不意味着困难,但在任何人建议重新设计变通办法之前;

  • 是的我知道我可以强迫用户在IE中使用特定的ActiveX查看器或使用Java tiff查看器,但我宁愿让他们使用他们选择的查看器,而不是强迫他们安装我选择的查看器,特别是他们的查看器可能是一个帮助应用程序,将tiff图像加载到他们办公室内的业务工作流程中
  • 是的,我知道我可以使用其他图像格式,但tiff是文档成像的事实标准,这是绝大多数用户喜欢使用的.问题不在于图像格式,而是QuickTime不会将其剪切为tiff查看器

提前感谢任何建议或解决方案......

Sau*_*aul 2

至少以 Internet Explorer 的当前功能,使用 Javascript 几乎不可能实现您既定的目标。

但是,IE 还支持 VBScript 和签名的 ActiveX 控件。您可以使用它们构建客户端小部件,以直接从注册表获取默认的 MIME 类型关联。Windows 将它们保存在“HKEY_LOCAL_MACHINE\Software\CLASSES\”中。RFC2936 - HTTP MIME 类型处理程序检测给出了类似的建议,甚至还有一个代码示例。

如果上述内容看起来太麻烦,那么您可以扩展不将用户限制为特定查看者的初始策略。如果用户一开始就拥有 QuickTime,为什么不继续使用它呢?用户的机器是私人领地,您无法知道为什么 QuickTime 会在那里。

希望这有助于让您朝着正确的方向前进。