Как я могу определить mime-тип документа, используя только javascript? - PullRequest
5 голосов
/ 27 января 2010

Мне нужно определить mime-тип определенных файлов, которые возвращаются из службы, я не знаю их расширений или того, какой у них тип, заранее, в основном мы получаем документы из API, например: " http://site.com/getFile/BFD843DFLKXJDF" где случайный текст в конце - это какой-то файл.

<input type="button" value="Click Me" onClick="alert(document.getElementById('iframeID').contentDocument.contentType);">

<iframe id="iframeID" src="http://site.com/getFile/BFD843DFLKXJDF" width="600" height="600" />

Это работает в Firefox, возвращается в диалоговом окне с предупреждением: «application / pdf» для файлов pdf. Однако Internet Explorer - это основной браузер, на который мне нужно ориентироваться, «contentDocument» не определен (по-видимому, я использую просто «document»), но «contentType» также не определен, и я не знаю, каким будет эквивалент IE поиски не дали результатов).

Помощь очень ценится, спасибо.

Ответы [ 3 ]

1 голос
/ 27 января 2010

Если http://site.com отличается от вашего домена, вы не сможете получить доступ к его данным в любом браузере. Это связано с мерами безопасности межсайтовых сценариев.

0 голосов
/ 27 января 2010

IE поддерживает document.mimeType, но, кажется, дает понятное имя, а не фактический синтаксис foo / bar. Что странно. Хотя это может быть достаточно для ваших целей.

Я не знаю, почему это не задокументировано здесь , но собственный интерфейс IHTMLDocument2 документирует это здесь . Очень странно.

0 голосов
/ 27 января 2010

Возможно:

var frame = document.getElementById('iframeID');  
var type;  

if (frame.contentDocument) { 
  type = frame.contentDocument.contentType;  
} else {
  type = frame.contentWindow.document.contentType;  
}
alert(type);  

Извините, конец дня нет времени для проверки ....

...