Как лучше всего определить, может ли браузер пользователя просматривать файлы PDF?
В идеале это не должно иметь значения для браузера или операционной системы.
Есть ли какой-то конкретный способ сделать это в ASP.NET, или ответ будет просто JavaScript?





Быстрый поиск в Google нашел это. Полезно для всех видов плагинов.
Ни то, ни другое, не пытайтесь.
Re рассвет: Обнаружение подключаемого модуля - неправильный ответ. В моем браузере (Firefox в Ubuntu) не установлен плагин PDF, но я могу просматривать файлы PDF с помощью программы просмотра документов операционной системы (которая не является Acrobat Reader).
Сегодня любая операционная система, которая может запускать веб-браузер, может сразу же просматривать PDF-файлы.
Если в конкретной системе не установлено средство просмотра PDF и браузер настроен для его использования, это, вероятно, означает, что либо это ручная установка Windows, либо очень урезанная альтернативная операционная система, либо что-то действительно ретро.
Разумно предположить, что в любой из этих ситуаций пользователь будет знать, что такое PDF-файл, и либо намеренно решит не просматривать их, либо будет знать, как установить необходимое программное обеспечение.
Если я обманываю себя, мне бы хотелось, чтобы мне объяснили, в чем я ошибаюсь.
Есть пользователи, которые предпочитают не открывать PDF-файлы в браузере и отключают плагин (это позволяет открывать файл в собственном приложении вне окна браузера). Лучше сообщить пользователю, что для открытия чего-либо требуется программное обеспечение (будь то PDF-файл или нет), чем пытаться определить, доступен ли плагин.
Другая проблема с обнаружением заключается в том, что вам нужно искать изменения от версии к версии (например, см. «PDF.PdfCtrl. *» Против «AcroPDF.PDF. *» Для программы просмотра Adobe PDF) и различных реализаций браузера ( ранее упомянутые строки используются, например, в IE, тогда как Firefox использует совершенно другой способ обнаружения. Тогда нам нужно подумать об Opera, Safari и ???). Кроме того, существуют разные поставщики (например, Foxit и Ghostscript, хотя я не уверен, предоставляют ли они плагин для браузера), у которых могут быть различия в обнаружении плагина.
Для сценария, написанного в 2008 году, и дополнительной информации о предостережениях см. Обнаружение плагинов в Internet Explorer (и несколько советов для всех остальных).
Первоначально проигнорировав совет на этой странице, архитектор продолжил обнаружение Acrobat, вызвав неминуемый кошмар службы поддержки.
Как упоминает ddaa, не все сценарии могут быть точно захвачены с помощью обнаружения подключаемых модулей. Некоторые пользователи, например, могут предпочесть просмотр файлов PDF с помощью FoxIt Reader, а не acrobat. Браузеры некоторых пользователей не указывают, что они готовы к работе с Acrobat, и, конечно же, не всегда одинаково.
Лучшим решением было бы дать пользователю выбор, как он хотел бы просматривать соответствующий документ. Лично мне не нравится, когда какой-либо веб-сайт полагается на подключаемый модуль - это портит красоту Интернета.
Использование маленького значка Adobe по сравнению со значком Internet Explorer для меня было похоже на pdf и html. Очень жаль, что IE напоминает мне HTML, но ... ну, что поделаешь?