> var state;
>
> window.onload=function() {
>
> obj = document.getElementsByTagName('body')[0];
> state = (state == null)? ' defaultText' : state;
При первом запуске кода состояние нам не определено, поэтому было бы лучше либо установить его на null при объявлении, либо изменить приведенное выше значение на:
state = state? ' defaultText' : state;
Учитывая, что при первом запуске выражение будет иметь значение true, тогда состояние будет установлено на ' defaultText'
.Обратите внимание, что в начале строки есть пробел.В некоторых браузерах это пространство будет удалено, а в других оно будет сохранено, поэтому гораздо лучше удалить его.
> obj.className += state;
На этом этапе «defaultText» будет добавлен в список классов наэлемент тела.Опять же, могут быть проблемы с начальными пробелами, которые лучше всего решаются с помощью надежных функций hasClass, addClass и removeClass (их не особенно сложно написать).
>
> document.getElementById('addClass').onclick = function() {
> obj.className += (obj.className == ' myNewClass')? ' defaultText' :
> ' myNewClass';
С функциями, предложенными выше, это может быть:
if (hasClassname(obj, 'myNewClass')) {
addClassname(obj, 'defaultText') ;
} else {
addClassname(obj, 'myNewClass') ;
}
.
state = obj.className;
}}
Если вам нужна помощь с функциями has / add / removeClassname, просто спросите.