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

7
我正在尝试在IE脚本(javascript或vbscript)中找出哪个ActiveX控件将处理特定的mime类型,例如"image/tiff"。在其他使用插件的浏览器中,这很容易做到;
navigator.mimeTypes["image/tiff"].enabledPlugin.name 它将返回类似于QuickTime Plug-in X.X.X的内容。
我已经找到了很多示例来判断是否加载了特定的ActiveX控件,但由于有几个可用的ActiveX控件可以处理tiff图像,所以我需要知道哪个(如果有)已注册以处理此mime类型。
我要处理的问题是QuickTime总是想要注册自己作为默认的tiff查看器,但它表现得很糟糕,导致大量的支持电话。不幸的是,仅检测到QuickTime已安装并不够好,因为用户可能还安装了另一个tiff查看器(如Alternatiff)作为默认的tiff查看器,或者用户可能已将QuickTime配置为不是tiff图像的默认查看器,因此浏览器可能会使用辅助应用程序来显示图像。
不是故意让任何人建议重新设计解决方法,但是:
- 是的,我知道我可以强制用户在IE中使用特定的ActiveX查看器或使用Java tiff查看器,但我宁愿让他们使用他们选择的查看器,而不是强制他们安装我选择的查看器,特别是因为他们的查看器可能是将tiff图像加载到他们办公室的业务工作流中的辅助应用程序。 - 是的,我知道还有其他图像格式可用,但是tiff是文档成像的事实标准,这是绝大多数用户喜欢使用的。问题不在于图像格式,而在于QuickTime无法胜任tiff查看器的工作。
提前感谢任何建议或解决方案...

最终目标是什么 - 如果QuickTime是默认处理程序,向他们提供某种警告? - BradBrening
为什么不用PDF包装呢 - 如果它是扫描件,你可以轻松地将tiff头部更改为例如ccitt g4的pdf格式。或者在一个tiff图像周围包装一个链接,写上“点击我”。 - mplungjan
嗨,布拉德,是的,最终结果将是向他们提供警告和链接到一个页面,其中包含有关可行替代配置的说明。 - Jay13
2
如果您无法解决此问题,也不想将其包装成PDF格式,只需提供一个链接,例如“无法查看文档?”(如果已安装QuickTime)。顺便说一句,我讨厌QuickTime,它的下载量巨大,视频插件糟糕,经常崩溃,我经常无法看到视频控件。 - Ruan Mendes
1个回答

2
至少就目前Internet Explorer的能力而言,使用Javascript几乎不可能实现您所述的目标。
然而,IE也支持VBScript和签名的ActiveX控件。您可以使用它们来构建一个客户端小部件,直接从注册表中获取默认MIME类型关联。Windows将它们保存在“HKEY_LOCAL_MACHINE\Software\CLASSES\”中。RFC2936 - HTTP MIME Type Handler Detection提供了类似的建议,甚至有代码示例。
如果以上方法看起来太繁琐,那么您可以扩展您最初的策略,不限制用户使用特定的查看器。为什么不让用户继续使用QuickTime,如果他们一开始就有它呢?用户的机器是私人领域,您无法知道为什么QuickTime会在那里。
希望这些能帮助您朝着正确的方向前进。

哦,用编写ActiveX控件解决这个问题似乎有点繁琐。我以前考虑过这样做,但感觉太费力了,然而根据你引用的参考资料看来这是唯一的可行方案。至于让他们继续使用QuickTime,我从不覆盖他们的设置,因为正如你所说,这是他们自己的机器,他们想怎么处理都可以。我的意图只是通知他们,由于QuickTime查看器不支持完整的Tiff标准,他们可能会在查看我应用程序提供的Tiff图像时遇到问题。谢谢,Saul... - Jay13

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接