В большинстве случаев лучше обнаруживать функции, а не браузер. Обнаружение функций в Javascript и проще, и надежнее, чем в браузере.
В этом конкретном случае вам лучше установить класс следующим образом:
document.getElementById(...).className = "gDay gDayHover";
Этот код должен работать во всех браузерах, включая IE6.
Причина, по которой у вас возникла проблема с этим, заключается в том, что атрибут класса в DOM называется className
.
Это потому, что слово class
является зарезервированным словом в JavaScript, поэтому наличие его в DOM в некоторых случаях может привести к неоднозначности, но, как вы видите, решение этой проблемы привело к возникновению других проблем!
Из этого следует, что setAttribute
не является надежной функцией для установки атрибута class
. Большинство других атрибутов должны быть в порядке с setAttribute
, хотя некоторые другие могут также иметь проблемы, поэтому в общем случае лучше использовать свойство DOM.