JavaScript: Немного информации о браузере пользователя

5 Апр
2012

Недавно столкнулся с задачей узнать поддерживает ли браузер пользователя флэш. Пошел искать, но так ничего хорошего не нашел, куча бесполезного кода, по крайней мере для меня он оказался бесполезным…

Вот и решил написать скрипт который это определит и еще немного параметров браузера, и создать объект window.app под эти нужды.

Может что нибудь не очень лаконично, элегантно но работает!

  1. (function() {
  2. document.tmp = {app: {
  3. apps: [«msie», «opera», «firefox», «chrome»],
  4. userAgent: navigator.userAgent.toLowerCase()}}
  5. window.app = {
  6. name: (function () {
  7. for(var i in document.tmp.app.apps) {
  8. if(1 != document.tmp.app.userAgent.indexOf(document.tmp.app.apps[i])) {
  9. document.tmp.app.name = document.tmp.app.apps[i];
  10. return document.tmp.app.name;
  11. }
  12. }
  13. document.tmp.app.name = «unknown»;
  14. return document.tmp.app.name;
  15. })(),
  16. version: (function () {
  17. if(document.tmp.app.name == «opera») document.tmp.app.version = document.tmp.app.userAgent.substr(document.tmp.app.userAgent.lastIndexOf(«version») + «version».length + 1, 3);
  18. else document.tmp.app.version = document.tmp.app.userAgent.substr(document.tmp.app.userAgent.lastIndexOf(document.tmp.app.name) + document.tmp.app.name.length + 1, 3);
  19. return document.tmp.app.version.replace(/^.+|.+$/, «»);
  20. })(),
  21. flash: (function () {
  22. switch(document.tmp.app.name) {
  23. case «msie»:
  24. try {
  25. return (new ActiveXObject(«ShockwaveFlash.ShockwaveFlash»)) ? true : false;
  26. } catch(e) {
  27. return false;
  28. }
  29. break;
  30. default:
  31. try {
  32. return (window.navigator.plugins[«Shockwave Flash»]) ? true : false;
  33. } catch(e) {
  34. return false;
  35. }
  36. }
  37. })()
  38. }
  39. delete document.tmp;
  40. })();
По материалам Хабрахабр.



загрузка...

Комментарии:

Наверх