對於允許在瀏覽器中預覽文檔的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