10.03.2018, 23:10
|
Кандидат Javascript-наук
|
|
Регистрация: 03.05.2016
Сообщений: 137
|
|
Перестал работать .click() на елементе в расширении chrome
Здравствуйте.
Работало мое расширение для одного сайта, работали операции по клику мышки
$('#idAllSelect').children('.data').each(function() {
$(this).click(); //===работало
});
работало, пока держатели сайте не переделали методы работы, пока ковыряюсь в их коде но в закодированном 1 мегабайте текста буду еще долго ковырять, какие есть другие способы чтобы, заставить все таки сработать событие .click() может есть какие другие варианты?
|
|
11.03.2018, 11:52
|
Кандидат Javascript-наук
|
|
Регистрация: 03.05.2016
Сообщений: 137
|
|
Проблему решил, оказалось что там обрабатывается не событие click, а прослушивает mousedown
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));
target.dispatchEvent(e);
};
//===И сам клик, в моем случае
$('#idAllSelect').children('.data').each(function() {
// $(this).click(); //===работало
let Idleme = $(this).attr('id');
let EleClick = document.getElementById(Idleme);
dispatchMouseEvent(EleClick, 'mouseover', true, true);
dispatchMouseEvent(EleClick, 'mousedown', true, true);
dispatchMouseEvent(EleClick, 'click', true, true);
dispatchMouseEvent(EleClick, 'mouseup', true, true);
});
|
|
12.03.2018, 16:18
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,791
|
|
|
|
12.03.2018, 18:44
|
Кандидат Javascript-наук
|
|
Регистрация: 03.05.2016
Сообщений: 137
|
|
да я его пробовал, не пашет
|
|
12.03.2018, 18:53
|
|
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
Signal,
тут где то похожая темка была
EleClick.dispatchEvent(new Event("mousedown"));
|
|
12.03.2018, 19:00
|
Кандидат Javascript-наук
|
|
Регистрация: 03.05.2016
Сообщений: 137
|
|
Сообщение от j0hnik
|
Signal,
тут где то похожая темка была
EleClick.dispatchEvent(new Event("mousedown"));
|
самое, что интересно, через new Event тоже не пахало
я сутки прокурил весь инет, и тока на этом сайте мой вариант заработал
причем
dispatchMouseEvent(EleClick, 'mouseover', true, true);
dispatchMouseEvent(EleClick, 'mousedown', true, true);
dispatchMouseEvent(EleClick, 'click', true, true);
dispatchMouseEvent(EleClick, 'mouseup', true, true);
любую из этих строк ремиш, и перестает работать
Последний раз редактировалось Signal, 12.03.2018 в 19:03.
|
|
12.03.2018, 19:16
|
|
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
видимо для всех этих событий назначены обработчики.
|
|
12.03.2018, 19:18
|
Кандидат Javascript-наук
|
|
Регистрация: 03.05.2016
Сообщений: 137
|
|
Сообщение от j0hnik
|
видимо для всех этих событий назначены обработчики.
|
хз курил их код там тока mousedown
|
|
12.03.2018, 20:24
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,791
|
|
Сообщение от Signal
|
да я его пробовал, не пашет
|
Вы все 4 события подряд пытались запустить или только "mousedown"?
|
|
12.03.2018, 21:19
|
Кандидат Javascript-наук
|
|
Регистрация: 03.05.2016
Сообщений: 137
|
|
dispatchMouseEvent(EleClick, 'mouseover', true, true);
dispatchMouseEvent(EleClick, 'mousedown', true, true);
dispatchMouseEvent(EleClick, 'click', true, true);
dispatchMouseEvent(EleClick, 'mouseup', true, true);
любую из этих строк ремиш, и перестает работать
соответсвенно пробовал менять последовательность, не пашет, тока в этом порядке ну это и логически понятно, но пашет тока так
Последний раз редактировалось Signal, 12.03.2018 в 21:21.
|
|
|
|