Отправляет email-рассылки с помощью сервиса Sendsay

Программирование на JavaScript

  Все выпуски  

Азы и секреты программирования на JavaScript.


Информационный Канал Subscribe.Ru - www.lycos.ru

Азы и секреты программирования на JavaScript N ##

Ссылка на архив предыдущих выпусков: http://subscribe.ru/archive/comp.soft.prog.javascript/
Статистика рассылки: http://subscribe.ru/stat/comp.soft.prog.javascript/
Форум по языкам сценариев: http://www.b-soft.ru/phorum/

Поздравляю всех подписчиков с наступающими Майскими праздниками и желаю Вам хорошо провести время и отдохнуть!

Маленькие хитрости.

В первую очередь приношу свои извининения за длительный перерыв в выходе рассылки. Короткая командировка в сельскую местность неожиданно растянулась почти на три месяца, а там с выходом в Интернет... сами понимаете. Постараюсь, чтобы такое больше не повторилось. Ну, не будем о грустном, а перейдем к делу.

В предыдущих выпусках мы начали рассматривать последовательность обработки событий в броузерах. Как теперь можно использовать наши знания на практике? Давайте разберем пример.

Как-то раз ко мне обратился один из подписчиков с просьбой разработать скрипт, который менял-бы гиперссылки на странице. Например - на бесплатном хостинге Вам в начале страницы "втыкают" банер, а Вы хотите, чтобы щелчек по этому банеру отправлял не туда, "незнаю куда", а на вашу, заранее определенную ссылку. Что характерно, показы банера будут нормально учитываться, при наведении курсора мыши на банер в строке статуса появится нормальный адрес, заданный банерной службой. Но... стоит на нем щелкнуть, как откроется только та страничка, которую вы зададите сами! Интересный эффект, не правда-ли?

Для того, чтобы продемонстрировать такой эффект, я предлагаю создать два файла - один HTML, для работы со сценарием, а второй - JS, непосредственно в котором этот сценариий и разместим, чтобы он не "маячил" в тексте страницы.

Текст сценария, который надо записать в файл gohome.js:


function myFun() {
 if (event.srcElement.tagName=="A") {
  document.links[0].href="3.html";
 }
}
document.onmousedown=myFun;

Что делает функция в этом сценарии? Она проверяет все события onmousedown, которые передает ей броузер, и перехватывает события, пришедшие от гиперссылок - event.srcElement.tagName=="A". Далее, если это событие от щелчка на первой по счету гиперссылке - links[0], (в программировании счет элементов начинется не с 1, а с нуля: 0, 1, 2, 3 ...), то вначале сценариий подменяет ссылку на указанную (в нашем примере - 3.html), и предает событие обратно броузеру для дальнейшей обработки. А тот отправляет пользователя туда, куда надо нам!

Текст файла index.html, который использует данный сенариий:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>

<BODY>
 <BR> <BR>
<CENTER>
<A HREF="1.html">Href 1</A> <BR>
<A HREF="2.html">Href 2</A> <BR>
<A HREF="3.html">Href 3</A> <BR>
</CENTER>

<!-- Спрячем сценариий от провайдера, чтобы не бросался в глаза -->
<SCRIPT LANGUAGE="JavaScript" src="gohome.js"></SCRIPT>

</BODY>
</HTML>

Ну, для полноты картины, сделаем еще два маленьких HTML файла, чтобы была видна работа сценария и можно было реально помотреть, где мы окажемся после щелчка на первой гиперссылке. На првый взгляд - гиперссылка приведет к файлу 1.html, но после перехода заголовок странички покажет, что мы оказались на странице 3.html.

2.html


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Document #2 </TITLE>
</HEAD>
<BODY>
<H1>2</H1>
</BODY>
</HTML>

3.html


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Document #3 </TITLE>
</HEAD>
<BODY>
<H1>3</H1>
</BODY>
</HTML>

Вот такая маленькая хитрость. Только хочу предупредить, некоторые провайдеры бесплатного хостинга не одобрят использование таких трюков, и могут лишить Вас места. Так что, будьте осторожны с подобными шутками.


Ссылка на архив предыдущих выпусков: http://subscribe.ru/archive/comp.soft.prog.javascript/
Статистика рассылки: http://subscribe.ru/stat/comp.soft.prog.javascript/
Форум по языкам сценариев: http://www.b-soft.ru/phorum/
Автор и ведущий рассылки И. Балезин
Материалы для Web-мастера.

-AdRiver-

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу
Материалы для Web-мастера.


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное