Страница, управляемая при помощи мыши
Таким же образом можно изменить не только тот блок текста, на который мы навели указатель мыши, но и любые другие элементы, если только присвоить им имя. Например, если мы хотим одновременно с изменением цвета второй строки на красный изменять цвет третьей строки, скажем, на зеленый, достаточно будет сначала присвоить третьей строке имя:
<DIV ID="text2">Этот текст изменит свой цвет, если мышь навести на вторую строку!</DIV>…а потом соответствующим образом изменить функции:
function change() { document.all.text1.style.color = "red"; document.all.text2.style.color = "green"; } function change2() { document.all.text1.style.coior = "black"; document.all.text2.style.color = "black"; }Теперь при наведении мыши на вторую строку ее цвет будет изменяться на красный, а цвет третьей строки – на зеленый. К сожалению, здесь начинают сильно сказываться различия между браузерами. Доступ через метод document.all будет работать в Internet Explorer, но не сработает в Netscape. Чтобы этот пример мог работать в Netscape 6, необходимо доступ через метод document.all заменить на доступ через метод document.getElementByld(). А как быть, если мы хотим, чтобы этот пример работал и в Internet Explorer, и в Netscape 6?
Учет различий между браузерами
Такие вопросы обычно решаются не просто. Но в данном случае мы можем осуществить проверку версии браузера и, в зависимости от ее результата, присвоить переменной text1 либо значение document.all.text1, либо значение document.getElementByld("text1"). А затем в функциях замены цвета просто подставлять эту переменную. То же самое можно проделать и с переменной text2. Только нужно не забыть заранее определить эти переменные:
var text1, text2; function brws() { if (navigator.appName != "Net scape") { text1 = document.all.text1; text2 = document.all.text2; } else { text1 = document.getElementById("text1"); text2 = document.getElementById("text2"); } }Теперь необходимо сделать так, чтобы нагла функция brws() выполнялась сразу после загрузки страницы. Для этого установим в теге <BODY> обработчик событий, реагирующий на загрузку элемента. Он называется onLoad:
<BODY onLoad="brws()">Посмотрим, что у нас получается в целом.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transional//EN"><HTML> <HEAD> <TITLE>Обработка событий мыши (1E4, NN6)</TITLE> <SCRIPT LANGUAGE="JavaScript"> //<!-- var textl, text2; function brws() { if (navigator.appName != "Netscape") { text1 = document.all.text1; text2 = document.all.text2; } else { text1 = document.getElementById("text1"); text2 = document.getElementById("text2"); } } function change() { text1.style.color = "red"; text2.style.color = "green"; } function change2() { text1.style.color = "black"; text2.style.color = "black<"; } //--> </SCRIPT></HEAD> <BODY onLoad="brws()">Этот текст не изменит свой цвет. <DIV ID="text1" onMouseOver="change() " onMouseOut="change2()"> Этот текст изменит свой цвет, если навести на него мышь! </DIV> <DIV ID="text2">Этот текст изменит свой цвет, если мышь навести на вторую строку!</DIV></BODY> </HTML>Результат можно увидеть на рис. 7.5. Теперь этот пример работает и в браузере Internet Explorer, и в браузере Netscape 6. Конечно, хотелось бы создавать такие страницы, которые бы работали по крайней мере в этих двух браузерах, потому что в Netscape версии 4 поддержка динамических страниц вообще очень слабая. Однако это не всегда возможно. В этой книге в дальнейшем все примеры будут ориентированы на браузер Internet Explorer версии 4 и выше (если специально не оговорено обратное).

Рис. 7.5. Страница, на которой цвет строк может изменяться
