Как определить, является ли браузер 64-разрядным или нет?

У меня есть приложение Silverlight, которое я построил в 2009 году. К сожалению, Silverlight недоступен для 64-битных браузеров. И использование 64-разрядных браузеров только начинает расти, особенно с выпуском Windows 8. Поэтому я хочу обнаружить 64-битный браузер и предоставить удобное для пользователя сообщение о том, почему приложение не удалось загрузить.

Я мог бы потянуть это немного с помощью Javascript, но пользовательские агенты и т.д., похоже, находятся по всей карте. И я пробовал navigator.cpuClass, который, кажется, делает то, что я хочу в Internet Explorer. Он возвращает x86 в 32-разрядной версии IE10. Но он возвращает undefined в Chrome и Firefox. Поэтому я ищу надежное решение для всех браузеров.

Обратите внимание, что Мне все равно, является ли ОС 64-разрядной или нет. Это не имеет значения. Меня беспокоит только браузер.

Ответ 1

Благодаря @RocketHazmat я обнаружил, что 64-разрядная поддержка браузера была представлена ​​с Silverlight 5. Мое приложение использовало Silverlight 4. Поэтому я обновил до 5 и теперь он работает с 64-битными браузерами, которые я тестировал.

Однако есть еще одно исключение. Даже Silverlight 5 не будет работать в версии Metro IE10 под Windows 8. По-видимому это по дизайну, поскольку это специализированная версия IE10, оптимизированная для touch. Это все еще не объясняет это для меня. Я думаю, что он хромой.

Конечно, это означает, что обнаружение 64-битного браузера больше не вызывает беспокойства. Microsoft просто должна добавить поддержку Silverlight в этот браузер, и тогда я буду счастлив.

ОБНОВЛЕНИЕ

Я нашел интересный лакомый кусочек, связанный с метро/современным IE10 в Win8. Вы можете указать браузеру, что на странице есть плагины, которые требуют "настольной" версии IE.

Вам просто нужно добавить этот метатег в свой HTML...

<meta http-equiv="X-UA-Compatible" content="requiresActiveX=true" />

И это создаст это приглашение...

enter image description here