我正在开发一个应用程序,它生成压缩的.djvu文件,并有一个用于查看.djvu文件的页面。
我想要主动检查用户的浏览器是否能够打开.djvu文件,如果用户的浏览器不能打开.djvu文件,则提供到推荐插件的链接。
我之所以要积极主动地推荐插件,是因为在浏览器中查看.djvu文件并没有通用的解决方案,而找到正确的插件并不简单。
我目前的解决方案(在编写任何代码之前)是检查用户浏览器,然后检查是否安装了特定的插件,但这不是很好的证明或未来的证明。(例如,如果用户安装了不同的/新插件,而我没有检查)
发布于 2016-10-05 15:17:34
这可能不是一个很好的解决方案,但在功能上是可以的。它依赖于插件后缀(受支持的文件类型),我注意到并不是所有的开发人员都包括它,所以它不是一个无懈可击的解决方案。
var numPlugins = navigator.plugins.length;
var djvuPluginDetected = false;
var djvuMimeTypes = ["image/x-djvu", "image/vnd-djvu", "image/x.djvu", "image/vnd.djvu"]; // Array of the different mime formats that may be used by plugins
for (var i = 0; i < numPlugins; i++) {
var plugin = navigator.plugins[i];
var numMimeTypes = plugin.length;
for (var j = 0; j < numMimeTypes; j++) {
var mimeType = plugin[j];
if (mimeType.suffixes.indexOf("djvu") > -1) {
djvuPluginDetected = true;
}
if(djvuMimeTypes.indexOf(mimeType.type) > -1) {
djvuPluginDetected = true;
}
} // end for numMimeTypes
} // end for numPlugins
// If there is no plugin that supports "djvu" was found then show the modal.
if (!djvuPluginDetected) {
$('#getdjvuPluginModal').modal('show');
}这还可以通过搜索plugin > mime类型>后缀来检查不同文件类型的插件,这可能对其他人很有用。
例如:
if (mimeType && mimeType.suffixes.search("pdf") > -1) https://stackoverflow.com/questions/39831436
复制相似问题