Сообщение от Octane
|
Какие у Вас есть предложения по улучшению кода?
|
Есть предложение отказаться от такого рода проверки вообще.
Такое "определение браузера/версии" можно назвать условным, без гарантий. Любое изменение строк производителем UA или пользователем, любое изменение особенностей движка может привести к проблемам.
Из недавних...
Если пару слов навскидку по скрипту, то вы смешиваете "главные" строки со "второстепенными". Например, если мы нашли 'gecko', но по каким-то причинам не нашли номер версии, то браузер не определится вообще. Или, определив объект 'opera', мы можем не определить 'version', т.к. первый старше второго версий на несколько, браузер снова не определится. Значением 'version' является строка, возможность применить к строке ака массивное обращение '[0]' - это экстеншн, вне рамок стандарта. Определяя IE, можно было бы просто сравнить номер полученной версии с чем-то, не обязательно множить на десять и ловить хвостик. Чем черт не шутит, возможно MS начнёт очень быстро менять версии jscript.dll и в недалёком будущем (IE8+) нам засветит версия 6.0+, ваш скрипт в этом случае споткнётся. И вообще, номер версии jscript не обязательно говорит о версии браузера, 5.7 встречается и на IE<7 (разные либы с одним номером). Ну, и надо как-то размыкать возможную двойственность, к примеру, у меня в Опере что 'browser.gecko=',что 'browser.opera=' выдают номера версий, т.к. Опера представляется фоксом и меня, как пользователя, это совершенно не волнует...