Показать сообщение отдельно
  #1 (permalink)  
Старый 20.01.2019, 06:32
Кандидат Javascript-наук
Отправить личное сообщение для Signal Посмотреть профиль Найти все сообщения от Signal
 
Регистрация: 03.05.2016
Сообщений: 137

Как при помощи jquery получить dispatchEvent?
вообщем проблема такая, из расширения надо клацнуть на нужный элемент на странице, на некоторыйх сайтах работает по обычному
$(elem).click();
или 
$(elem).trigger();

но есть такие, на которых это не срабатывает, нашел решение вот такое

var dispatchMouseEvent = function(target, var_args) {
  var e = document.createEvent("MouseEvents");
  // If you need clientX, clientY, etc., you can call
  // initMouseEvent instead of initEvent
  e.initEvent.apply(e, Array.prototype.slice.call(arguments, 1));
  try {
  target.dispatchEvent(e);
  } catch (Err) {
	  console.log(Err);
  }
};    


ну и сам клик:
	 let EleClick = document.getElementById('idElem');
        dispatchMouseEvent(EleClick, 'mouseover', true, true);
        dispatchMouseEvent(EleClick, 'mousedown', true, true);
        dispatchMouseEvent(EleClick, 'click', true, true);
        dispatchMouseEvent(EleClick, 'mouseup', true, true);

но возникла проблема, елемент на который надо кликнуть в результате обработки сайта получает ссылку на него в виде jquery объекта

и соответсвенно эта функция перестает работать, вернее матерится на 
  target.dispatchEvent(e);


как из jquery объекта получить ссылку в виде результата после document.getElementById('idElem'); или аналогичных?
Ответить с цитированием