对于允许在浏览器中预览文档的Web应用程序,我想检查用户的浏览器是否支持当前文档的MIME类型的预览。检查浏览器是否支持特定的MIME类型?
是否有一种基于Javascript的方式来匹配当前的MIME类型与浏览器支持的类型?
谢谢!
对于允许在浏览器中预览文档的Web应用程序,我想检查用户的浏览器是否支持当前文档的MIME类型的预览。检查浏览器是否支持特定的MIME类型?
是否有一种基于Javascript的方式来匹配当前的MIME类型与浏览器支持的类型?
谢谢!
您可以进行AJAX调用并检查mimetype的响应标头。
$.ajax({
type: "GET",
url: 'http://..../thing.pdf',
success: function (output, status, xhr) {
alert("done!"+ xhr.getAllResponseHeaders());
alert("done!"+ xhr.getResponseHeader("Content-Type"));
}
});
感谢您的提示,这听起来很有希望。不幸的是,Ajax调用二进制文件在IE中不起作用,请参阅:http:// stackoverflow。com/questions/9783330/getting-the-c00ce514-ie-when-attempting-to-load-a-swf-file – Windwalker 2013-02-12 16:44:20
Ahhh darn,它似乎总是停在IE不是:( – Timmetje 2013-02-12 16:47:56
Idea :你如何创建一个代理例如:proxy.php?file = document.pdf IE不会将其作为二进制文件处理,你可以在你的代理中设置你的响应标题,只要通过MIME类型等等。 – Timmetje 2013-02-12 16:49:19
如果您定义了特定文档类型需要哪个插件,那么您可以尝试查看是否需要插件。至少应该在Firefox和Chrome上运行。 window.navigator.plugins
其实问题在于,我们的客户几乎都在使用IE,因为它对大多数公司来说都是相当标准的,如果你总是不得不面对老式的浏览器,那就太糟糕了。 ... – Windwalker 2013-02-12 16:46:40
在这个问题上出现了同样的问题,我认为,试图看看它
对不起,这不完全是我的情况。 我是客户;即Javascript(不是PHP中的问题引用),我确实有一个具有某种MIME类型的文档,我想决定是否要 a)打开在内部预览中显示文档,如 或 b)跳过内部预览,如果不支持MIME类型 – Windwalker 2013-02-12 15:22:56
在最新的浏览器有navigatior.plugins阵列状物体。你可以检查你的MIME类型的每个插件。
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);
};
它可以工作,但它说chrome不支持image/jpg。有没有办法让所有类型包括图像。 – 2016-03-04 18:48:59
当浏览器从您想要执行此操作的服务器请求页面时,它会通过它接受的各种文档(HTTP'accept'请求标头)发送一个列表。所以,你甚至可以在你向他们展示页面之前知道(你可以通过将其嵌入到响应中来将这些信息提供给JavaScript)。当然,这要求您动态响应最初的请求,可能不是您要查找的内容。 – 2013-02-12 15:03:11
也许[这个问题](http://stackoverflow.com/questions/10704489/javascript-get-mime-type-support)有帮助。他们使用['navigator.mimeTypes'](https://developer.mozilla.org/en-US/docs/DOM/window.navigator.mimeTypes)这可能不适用于所有浏览器... – hsan 2013-02-12 15:03:57
@TJCrowder :这是一个好主意。由于我的应用程序是基于ExtJS-Ajax的,可能是一个相当有前途的方法。我会试一试。谢谢! – Windwalker 2013-02-12 16:50:44