Хаки куда более эффективное решение, чем определение браузер - сорри, некоректно выразился. Определение браузера (хоть более-менее не примитивное) - это некоторого рода хак. Ведь что такое хак? Это применение какого-то неестественного кода (читай, неправильного семантически), с целью исправить глюк (или фичу

) того или иного браузера с помощью другого его глюка.
Например, чтобы вылечить отсутствие getElementById в старых IE приходиться писать что-то типа
Код:
<script language="JavaScript">
function realGetById(id)
{
return (document.all) ? document.all(id) : document.getElementById(id);
}
</script>
Проверка на
document.all - это, формально не определение браузера, но фактически - это именно оно! Так, возвращаясь к AJAX'у, изменение src у тэга скрипт введено давно и поэтому
реально поддерживается всеми популярными браузерами. А выше приведённый пример не работает при отключенной поддержке ActiveX в ИЕ итд. Почитай приведённую мной ссылку - там толково. Хотя, поспорить по поводу вещей, относящихся к моему профессиональным увлечениям, я не против
