For a web application which allows in-browser preview of documents, I'd like to check whether the user's browser supports preview of the current document's mime type.
Is there a Javascript-based way to match the current mime type against the types supported by the browser?
Thanks!
For a web application which allows in-browser preview of documents, I'd like to check whether the user's browser supports preview of the current document's mime type.
Is there a Javascript-based way to match the current mime type against the types supported by the browser?
Thanks!
Share Improve this question asked Feb 12, 2013 at 14:59 WindwalkerWindwalker 1,9456 gold badges24 silver badges44 bronze badges 8 | Show 3 more comments4 Answers
Reset to default 4In recent browsers there are navigatior.plugins array-like object. You can check each plugin for your mime type.
Here is the solution gist and 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);
};
You could make an AJAX call and check response headers for mimetype.
$.ajax({
type: "GET",
url: 'http://..../thing.pdf',
success: function (output, status, xhr) {
alert("done!"+ xhr.getAllResponseHeaders());
alert("done!"+ xhr.getResponseHeader("Content-Type"));
}
});
In this question there was the same question I think, try to check out it
Check if a browser supports a specific MIME type?
If you define which plugin is needed for specific document type, then you may try to look if needed plugin exists. Should work at least on Firefox and Chrome. window.navigator.plugins
accept
request header). So you can actually know before you even show them the page (and you can make that information available to JavaScript by embedding it in the response). Of course, that requires you to dynamically respond to the initial request, and may not be what you're looking for. – T.J. Crowder Commented Feb 12, 2013 at 15:03navigator.mimeTypes
which probably won't work in all browsers... – hsan Commented Feb 12, 2013 at 15:03