Блог на Васил Тошков

Как да се справите със старите браузъри

Напоследък често ми се налага да режа някой сайт или за мой проект, или за проект на някой партньор. И както бях писал някога - често срещам проблеми с Internet Expolorer и най-вече неговите версии от 6 назад. Тоест версии 6.0, 5,5 и 5.0.

Проблемите идват най-вече от Internet Expolorer 6.0, защото е много разпространен (върви с Windows-а) и хората го използват. Но тази версия има много сериозни проблеми с W3C стандартите и не прави алфа прозрачност при PNG графиките.

Решение на тези проблеми разбира се има, но костват време и усилия. Единият вариант е да направим отделен CSS за Internet Explorer и да го викаме при разпознаване на този браузър. Другият вариант е да пишем код и за двата браузъра.

Но това е трудно и в повечето случаи скапваме кода, за да се съобразим с IE. Тоест използваме стари CSS техники, налага се да допускаме грешки и т.н. Трябва да използваме и GIF изображения, вместо PNG, но те са с ниско качество.

Решението за изображенията го получих от г-н Явор Младенов. Начинът за справяне с проблема е описан тук и за мое учудване работи доста добре. Но това не реши проблемите ми с кода, защото аз по принцип спазвам най-новите стандарти.

За клиентски проекти няма как - пиша си кода универсално или в два варианта. Но за мои такива не съм съгласен да се съобразявам с Internet Explorer. Измислих едно елегантно решение и се надявам да накара потребителите да си обновят браузърите.

Идеята е следната - добавям една PHP функция след първия таг <body> на сайтовете си, която проверява версията на браузъра. Ако тя е IE 5.0, IE 5.5 или IE 6.0, тогава изплюва един <div>, който симулира стандартно предупреждение на браузъра.

Ето една демонстрация, за да разберете идеята:

ieerror.png

Общо взето предупреждавам потребителя, че използва стара версия на браузъра си и е възможно съдържанието да не се визуализира коректно. Подканвам го също така да си обнови версията или да си сложи съвременен браузър като Mozilla Firefox.

Решението е елегантно и е в полза на потребителите, защото използването на стари версии на браузърите е опасно за компютрите. Ако се използва IE7 или друг браузър - съобщението не излиза. Кода може да си свалите от тук.

Това чудо се поставя в PHP файл, непосредствено след <body> тага. Тествано - работи. Може да го видите в действие в Cloxy. Надявам се, че съм бил полезен на дизайнерите, програмистите и най-важното - потребителите :)