Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 13.07.2009, 14:38
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Объект event создаётся при срабатывании обработчика, поэтому невозможно прослушивать window, ожидая вызова обработчика и тем более получить тело ф-ции (если обработчик добавлен через методы DOM).
Ответить с цитированием
  #12 (permalink)  
Старый 13.07.2009, 14:41
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Разве что все выполняемые ф-ции будут сами себя регистрировать и добавлять в с писок.
Ответить с цитированием
  #13 (permalink)  
Старый 13.07.2009, 14:58
Кандидат Javascript-наук
Отправить личное сообщение для SunnyDay Посмотреть профиль Найти все сообщения от SunnyDay
 
Регистрация: 22.09.2008
Сообщений: 111

Понятно.. Тоесть нельзя? Значит будем тыкать пальцем в небо)
Ответить с цитированием
  #14 (permalink)  
Старый 13.07.2009, 15:34
Кандидат Javascript-наук
Отправить личное сообщение для SunnyDay Посмотреть профиль Найти все сообщения от SunnyDay
 
Регистрация: 22.09.2008
Сообщений: 111

Вся проблемма в принципе в том что у меня не получается ссимулировать событие - тоесть к примеру по щелчку левой кнопки мышки что либо происходит. Пытаюсь вызвать это событие:
так
doc.getElementById('element').click();
и так (там используется jQuery)
$('#element').click();
действие не выполняется

Может быть вы подскажете, в чём может быть проблемма?
Ответить с цитированием
  #15 (permalink)  
Старый 13.07.2009, 15:51
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от SunnyDay
doc.getElementById('element').click();
Не есть метод узла. Для генерирования события скриптом используются методы DOM:

Для Gecko
var evt = new Event;
evt.initEvent('click', true, true);
document.body.dispatchEvent(evt);


Для ИЕ:
var evt = document.createEventObject();
document.body.fireEvent('onclick', evt);


Про jQuery ничего сказать не могу.

Последний раз редактировалось B~Vladi, 13.07.2009 в 15:56.
Ответить с цитированием
  #16 (permalink)  
Старый 13.07.2009, 16:24
Кандидат Javascript-наук
Отправить личное сообщение для SunnyDay Посмотреть профиль Найти все сообщения от SunnyDay
 
Регистрация: 22.09.2008
Сообщений: 111

B~Vladi,
спасибо большое! у меня все работает, сделал так -
var evObj = doc.createEvent('MouseEvents');
evObj.initEvent('click', true, true);
ellinat.dispatchEvent(evObj);


Последнее, не подскажите как сделать так чтобы кликало правой кнопкой мышки, а не левой?
Ответить с цитированием
  #17 (permalink)  
Старый 13.07.2009, 16:56
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от SunnyDay
var evObj = doc.createEvent('MouseEvents');
evObj.initEvent('click', true, true);
ellinat.dispatchEvent(evObj);
Это не будет работать в ИЕ. Нужно создать кросс-браузерную ф-цию:
function xInitEvt(e,type){
   if(e.initEvent&&e.dispatchEvent){
      var evt = e.createEvent('MouseEvents');
      evt.initEvent(type, true, true);
      e.dispatchEvent(evt);
   }else{
      var evt = document.createEventObject();
      document.body.fireEvent(type, evt);
   }
}

И ею пользоваца...

Про левую кнопку пока не знаю... нада смотреть... Но в любом случае это не кроссбраузерный вариант + это, например, в Опере, можно отключать.
Ответить с цитированием
  #18 (permalink)  
Старый 13.07.2009, 17:02
Кандидат Javascript-наук
Отправить личное сообщение для SunnyDay Посмотреть профиль Найти все сообщения от SunnyDay
 
Регистрация: 22.09.2008
Сообщений: 111

Понятно, спасибо.
Насчёт кнопки - попробовал заменить метод
evObj.initEvent('click', true, true);

на частный метод
evObj.initMouseEvent('click', true, true, doc.defaultView, 1, 1, 1, 1, 1, false, false, false, false, 2, null);

где предпоследний параметр - номер кнопки мышки, всёравно кликает левой. Ладно, дальше уже попробую сам заставить кликать правой
Ответить с цитированием
  #19 (permalink)  
Старый 13.07.2009, 17:05
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от SunnyDay
всёравно кликает левой
Мда, странно... пробуй в разных браузерах... Сам я так не заморачивался, т.к. ненадёжно...
Ответить с цитированием
  #20 (permalink)  
Старый 13.07.2009, 17:15
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

SunnyDay,
http://testcase.rubyforge.org/ru/docs/events здесь покопайтесь. А может даже и раскапывать не придется, самой библиотекой можно воспользоваться.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перехват запроса submit, реально ли? kosyak Events/DOM/Window 7 08.06.2009 19:23
Перехват нажатия ctrl+space demi AJAX и COMET 6 11.03.2009 11:03
Перехват координат курсора мыши 1 раз в секунду Бондя Events/DOM/Window 16 20.01.2009 14:44