Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Доступ к href в FF, Opera, Chrome 
V
    Опции темы
GShadrin
Дата 21.4.2010, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 20.7.2009
Где: Екатеринбург

Репутация: нет
Всего: нет



Здравствуйте.

Необходимо в обработчике события для ссылки получить поле href той ссылки, обработчик которой вызван.

Использую следующий код:

Код

function functionName(e)
{
   //получаем event для всех браузеров
   if (window.event)
   {
      e=window.event;
   }
   if (!e)   e = event;    
   if (!e)   return;     
            
   var target = (e.target) ? e.target : e.srcElement;
   alert(target.href); // вернет undefined в FF, Opera, Chrome
                                // в IE возвращает href

   alert(target.width); // вернет width в IE, FF, Opera, Chrome
            
   //блокируем обработчик ссылки
   if (window.event)
   {
      e.returnValue = false;
      return;
   }
  e.preventDefault(); 
}



Почему alert(target.href); вернул undefined в FF, Opera, Chrome и href в IE, а  alert(target.width); везде вернет width

Как кроссбраузерно получить поле href?
PM MAIL   Вверх
Amphiluke
Дата 21.4.2010, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 35
Всего: 112



У меня во всех браузерах показывает все наоборот: href какое нужно, а width — undefined, как и положено.
Выдайте в качестве проверки
Код

alert(target.tagName);


Добавлено через 2 минуты и 13 секунд
И покажите, как цепляете обработчик события.
PM   Вверх
GShadrin
Дата 21.4.2010, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 20.7.2009
Где: Екатеринбург

Репутация: нет
Всего: нет



По поводу обработчика.
Полный код ссылки:
Код

<A href="images2/image1.gif" onclick="openPicture(event)">
<IMG src="images2/image2.gif" alt="Текст">
</A>


alert(target.tagName);
Выдал IMG во всех браузерах.

PM MAIL   Вверх
Amphiluke
Дата 21.4.2010, 22:02 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 35
Всего: 112



Цитата(GShadrin @  22.4.2010,  01:54 Найти цитируемый пост)
Выдал IMG во всех браузерах.

Все правильно выдал. Вместо target используйте target.parentNode

Добавлено через 2 минуты и 25 секунд
Либо e.currentTarget.

Добавлено через 6 минут и 55 секунд
В общем, учтите, что событие имеет свойство «всплывать». Клик происходит на картинке, и именно на нее будет указывать свойство target объекта event, даже если событие уже обрабатывается в других (родительских) элементах. currentTarget — текущий элемент, обрабатывающий событие в данный момент.
PM   Вверх
GShadrin
Дата 21.4.2010, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 20.7.2009
Где: Екатеринбург

Репутация: нет
Всего: нет



Большое спасибо.

Все заработало)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0429 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.