首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查用户浏览器是否可以使用JavaScript查看DJVU文件

如何检查用户浏览器是否可以使用JavaScript查看DJVU文件
EN

Stack Overflow用户
提问于 2016-10-03 12:16:13
回答 1查看 249关注 0票数 0

我正在开发一个应用程序,它生成压缩的.djvu文件,并有一个用于查看.djvu文件的页面。

我想要主动检查用户的浏览器是否能够打开.djvu文件,如果用户的浏览器不能打开.djvu文件,则提供到推荐插件的链接。

我之所以要积极主动地推荐插件,是因为在浏览器中查看.djvu文件并没有通用的解决方案,而找到正确的插件并不简单。

我目前的解决方案(在编写任何代码之前)是检查用户浏览器,然后检查是否安装了特定的插件,但这不是很好的证明或未来的证明。(例如,如果用户安装了不同的/新插件,而我没有检查)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-05 15:17:34

这可能不是一个很好的解决方案,但在功能上是可以的。它依赖于插件后缀(受支持的文件类型),我注意到并不是所有的开发人员都包括它,所以它不是一个无懈可击的解决方案。

代码语言:javascript
复制
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类型>后缀来检查不同文件类型的插件,这可能对其他人很有用。

例如:

代码语言:javascript
复制
if (mimeType && mimeType.suffixes.search("pdf") > -1) 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39831436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档