Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Перехват клика по ссылке и сбор некоторых данных
 
 автор: krollik   (15.08.2008 в 20:08)   письмо автору
 
 

Вообще ситуация такая, нужно сделать чтобы при клике на ссылку, в адресе которой присутствует определенный домен, перед переходом по ссылке из нею брался href и текст ссылки и передавался определенной ссылке. Проблема заключается в том, что у ссылки может уже быть назначено задание на onclick и затирать его нельзя..
Вообщем в JS я оболтус, так что прошу ответы делать более полными.
Заранее спасибо, вы меня прямо спасаете..
ЗЫ: Усложнение всего это заключается в том, что эти ссылки в коде не присуствуют, т.е. они подгружаются по JS тоже (речь идет о рекламе на адсенс и бегуне, нужно перехватывать клики именно по ним)

  Ответить  
 
 автор: coloboc66   (15.08.2008 в 23:22)   письмо автору
 
   для: krollik   (15.08.2008 в 20:08)
 

Как понять:"...передавался определенной ссылке..."???
Если "задание затирать нельзя", то включите второе задание в первое, или расположите их последовательно:
<a href="host.php" onclick="func1();func2()" >text</a>

Если вам нужно контролировать, есть ли клики на вашем сайте по чужим ссылкам, то так и скажите. Я это делал когда-то с помощью аякса.

  Ответить  
 
 автор: GeorgeIV   (15.08.2008 в 23:49)   письмо автору
 
   для: coloboc66   (15.08.2008 в 23:22)
 

Определите ф-цию OnLoad. А далее она уже должна найти в сформированном документе подгруженный код со ссылкой и добавить в него свою функцию в список действий по onClick. В общих чертах так

  Ответить  
 
 автор: krollik   (16.08.2008 в 09:26)   письмо автору
 
   для: coloboc66   (15.08.2008 в 23:22)
 

coloboc66: хм про очередность я понял, но для меня остается открытым вопрос, как уже в сформированном документе средствами JS на все ссылки в начало onclick поставить вызов определенной функции. Можно использовать фреймворк прототайп.

  Ответить  
 
 автор: coloboc66   (16.08.2008 в 10:44)   письмо автору
 
   для: krollik   (16.08.2008 в 09:26)
 

Или я чего-то не понимаю: дайте конкретный код и сформулируйте задачу.

  Ответить  
 
 автор: krollik   (16.08.2008 в 15:37)   письмо автору
 
   для: coloboc66   (16.08.2008 в 10:44)
 

В странице есть ссылки вида:
<a id="aw0" class="adt" target="_top" onmouseover="return ss('','aw0')" onmousedown="st('aw0')" onfocus="ss('','aw0')" onclick="ha('aw0')" href="http://pagead2.googlesyndication.com/pagead/iclk?******">
<span>Протокол</span>
</a>

Нужно сделать так, чтобы, если человек кликнул на ссылку в href которой содержится "googlesyndication.com/pagead" (ссылка из примера), то вначале вызывалась моя функция (в неё надо передать href и то, что находится между тегами <a> и </a>), а затем уже то что было у этой ссылки по умолчанию в onclick (ha('aw0') - в нашем примере). Другие ссылки должны работать как обычно.

  Ответить  
 
 автор: PAT   (16.08.2008 в 15:43)   письмо автору
 
   для: krollik   (16.08.2008 в 15:37)
 

<a href="http://pagead2.googlesyndication.com/pagead/iclk..." onclick="if (this.href.indexOf ('googlesyndication.com') > 0) alert ('Вместо ALERTa пропишите вызов вашей функции')">Link</a>

  Ответить  
 
 автор: krollik   (16.08.2008 в 16:57)   письмо автору
 
   для: PAT   (16.08.2008 в 15:43)
 

мм.. А как это динамически прикрутить ко всем ссылкам?

  Ответить  
 
 автор: coloboc66   (16.08.2008 в 19:03)   письмо автору
 
   для: krollik   (16.08.2008 в 16:57)
 

Циклом.

  Ответить  
 
 автор: PAT   (16.08.2008 в 19:25)   письмо автору
 
   для: krollik   (16.08.2008 в 16:57)
 

<head>
<script>
function  myFunc ()
{
//ваша функция
}
onload = function  ()
{
var br = (document.addEventListener) ? 1 : ((document.attachEvent) ? 2 : 3);
for (var ln = document.links, j = 0; j < ln.length; j++)
if (ln [j].href.indexOf ('googlesyndication.com') > 0) switch (br)
   {
   case 1: ln [j].addEventListener ('click', myFunc, false); //для Mozilla
   case 2: ln [j].attachEvent ('onclick', myFunc, false);    //для MSIE
   case 3: ln [j] ['onclick'] = myFunc;                      //для прочих
   }
}
</script>
</head>
<body>
...

  Ответить  
 
 автор: krollik   (16.08.2008 в 21:32)   письмо автору
 
   для: PAT   (16.08.2008 в 19:25)
 

спс

  Ответить  
 
 автор: krollik   (16.08.2008 в 22:27)   письмо автору
 
   для: PAT   (16.08.2008 в 19:25)
 

Ещё один вопрос: ссылки гугла сидят в iframe, как и на них повесть функцию, зная имя фрейма (или ещё лучше - на все ссылки во всех фреймах)

  Ответить  
 
 автор: PAT   (16.08.2008 в 22:58)   письмо автору
 
   для: krollik   (16.08.2008 в 22:27)
 

В ифреймах "сидят" файлы, а уже в файлах "сидят" ссылки.

Если файл ваш (т.е. с того же домена, что и индексный файл), то
ничего вам не мешает в этот самый файл напрямую прописать
вышеприведенный скрипт по ONLOAD.

А ежели файл "чужой", то тут вы НИЧЕГО не сделаете, ибо
"влезать" в "чужие" страницы НИЗЗЗЗЗЯ!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования