Проверить поддержку браузера для определенного типа Mime?

Для веб-приложения, которое позволяет просматривать в браузере документы, я хотел бы проверить, поддерживает ли браузер пользователя предварительный просмотр текущего типа mime документа.

Есть ли способ, основанный на Javascript, для соответствия текущему типу mime с типами, поддерживаемыми браузером?

Спасибо!

Ответ 1

В последних браузерах есть объект типа navigatior.plugins, подобный массиву. Вы можете проверить каждый плагин для вашего типа mime.

Вот решение gist и jsfiddle.

var mimeCheck = function (type) {
    return Array.prototype.reduce.call(navigator.plugins, function (supported, plugin) {
        return supported || Array.prototype.reduce.call(plugin, function (supported, mime) {
            return supported || mime.type == type;
        }, supported);
    }, false);
};

Ответ 2

Вы можете сделать вызов AJAX и проверить заголовки ответов для типа mimetype.

 $.ajax({
    type: "GET",
    url: 'http://..../thing.pdf',
    success: function (output, status, xhr) {
      alert("done!"+ xhr.getAllResponseHeaders());
      alert("done!"+ xhr.getResponseHeader("Content-Type"));
    }
  });

Ответ 4

Если вы определяете, какой плагин необходим для определенного типа документа, вы можете попытаться посмотреть, нужен ли плагин. Должен работать хотя бы на Firefox и Chrome. window.navigator.plugins

И вот хороший пример