2013-09-24 5 views
0

ОК, я хочу сделать обнаружение браузера; Я знаю, что все говорят не так. Но вот почему. У меня есть приложение/страница WebGL. Обнаружение WebGL очень просто. Но если WebGL не поддерживается, я хочу дать пользователю информацию о том, что делать дальше. Для этого мне нужен браузер, платформа и версия. Поэтому я понимаю, почему все говорят использовать функцию обнаружения, но в этом случае, если я хочу дать инструкции, я должен знать браузер.Обнаружение браузера в Javascript для приложения WebGL

Например, с Firefox я расскажу пользователю об изменении настройки: config, тогда как Safari находится в меню разработчика (если используется память).

Если есть лучший подход, я все уши. Если нет, есть ли приличная библиотека обнаружения браузера, которая постоянно поддерживается и имеет дело со всеми крайними случаями или несогласованностями в том, как сообщаются браузеры.

ответ

1

Проверьте этот сайт: http://www.khronos.org/webgl/wiki/FAQ

На get.webgl у вас есть подстраниц под названием устранения неполадок.
Эта страница определяет ваш браузер, ОС и другие.
Вам не нужно писать это самостоятельно, когда это уже сделано.

Детектирование:

if(!window.WebGLRenderingContext) { 
    // the browser doesn't even know what WebGL is 
    alert("webgl not supported, visit http://get.webgl.org"); 
} 
else { 
    var canvas = document.getElementById("canvasID"); 
    var context = canvas.getContext("webgl") || canvas.getContext("experimental-webgl"); 
    if(!context) { 
     // browser supports WebGL but initialization failed 
     alert("webgl is supported but here is another problem, visit http://get.webgl.org/troubleshooting"); 
    } 
} 

Это все, что вам нужно сделать.

+0

Спасибо. Но я знаю, как проверить WebGL. Вопрос в том, что я ищу обнаружение браузера, поэтому я могу перейти на страницу, которая объясняет, какие параметры браузера для WebGL. Например, это часто дается в ответ: http://www.quirksmode.org/js/detect.html Но это не обнаруживает IPAD на всех, и не распознает Chrome на IPad. Я ищу библиотеку, которая находится в актуальном состоянии, поэтому мне не нужно постоянно ее настраивать. Поскольку я использую вышеуказанную ссылку и просто нахожу различные машины и отмечаю, где она не работает и не исправляется. Я бы хотел получить лучшее решение. –