Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Кнопка убегает от мыши, как остановить, что бы нажать?¹ (https://javascript.ru/forum/offtopic/86103-knopka-ubegaet-ot-myshi-kak-ostanovit-chto-nazhat-%C2%B9.html)

WASP-121b 03.10.2024 17:32

Кнопка убегает от мыши, как остановить, что бы нажать?¹
 
Привет всем!
Я не знаю, есть ли способ остановить кнопку?

Дело такое. Работодатель скинул ссылку на тест. Что бы перейти к тесту надо нажать кнопку. Которая хитрая...

При подводе к ней мышки, кнопка рвет с места в карьер!
Гоняться за ней и нажать конечно можно. После какого-то времени, кнопка была поймана мышкой )
Но, результат по времени мне не понравился. Нет, это не было долго, но не было и быстро.

При открытии dev tools - F12, кнопка вообще пропадает с радаров!
Открывал и page source, там разумеется кнопки нет.

Вопрос.
Есть ли какие-то способы остановить или замедлить кнопку?
Помогите пожалуйста.

Nexus 03.10.2024 18:55

Использовать навигацию без мыши (клавишей tab / shift + tab) пробовали?

WASP-121b 04.10.2024 00:39

Да Nexus, пробовал.
По меню все ходит. Слева внизу показывается ссылка, т.е. видно на чем сейчас находится переключение.
Но, на кнопку не переключается. Как будто ее нет на странице.

Еще забыл сказать, что дано на задание 3 дня.
Уже 2 дня осталось.

Белый шум 04.10.2024 04:38

WASP-121b,
без ссылки мы тут можем долго гадать и не найти способа :(

А так - попробуйте внедрить на страницу свой джаваскрипт с помощью какого-нибудь плагина (например - https://addons.mozilla.org/en-US/fir...in-the-middle/).
Что-то вроде такого:
var elements = document.querySelectorAll('[onmouseover], [onmouseenter], [onclick]');
console.log('MitM:', elements);

Может более опытные товарищи накидают сюда более нормальные варианты скрипта...

Если элемент найдётся, то можно на него нажать програмно или просто увидеть нужный УРЛ.

WASP-121b 04.10.2024 08:02

Белый шум, спасибо за такую идею!
Изучу как ею воспользоваться. Этого инструмента я не знал. Отлично!

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

Просто если по этой индивидуальной ссылке ворвутся гости, они поймут, что я попросил подмогу )
Поэтому, извиняюсь.

Буду рад еще помощи. У кого, какие идеи.

Там просто кнопка, которая отодвигается при приближении мыши.
Когда кнопку загоняешь в угол, то она исчезает и появляется в любом месте середины браузера.

Aetae 04.10.2024 08:49

Очевидное: настроить открытие инструментов разработчика в новом окне, отжать "останавливаться на ошибках\точках останова"(как-то так, лень смотреть), открыть инструменты через меню а не чрез f12.
И всё, инструменты тебе доступны и сайт никак не сможет узнать об этом факте. Дальше найти кнопку, и кликнуть программно.

Но вообще если это у тебя вызвало проблемы, то врядли ты подходишь для той работы.

WASP-121b 04.10.2024 11:54

Aetae, и через меню тоже открывалось все.

Цитата:

Сообщение от Aetae (Сообщение 556226)
Но вообще если это у тебя вызвало проблемы, то врядли ты подходишь для той работы.

Ценю ваше мнение, но ваша ситуация намного отличается от моего опыта )

Nexus 04.10.2024 12:49

Если вариант Aetae не подходит, то можно:
1. перейти на страницу с кнопкой;
2. вставить в адрес этой вкладки следующее и нажать enter (важно, чтобы после вставки строки ниже в адрес вкладки браузер не вырезал из начала `javascript:`):
javascript://document.addEventListener('keydown',a=>{'Enter'===a.key&&document.activeElement&&document.activeElement.dispatchEvent(new Event('click',{bubbles:!0}))});
код до минификации
document.addEventListener('keydown', e => {
    if (e.key !== 'Enter' || !document.activeElement) return;
    
    document.activeElement.dispatchEvent(new Event('click', {bubbles: true}));
});

3. с помощью tab найти на странице нужную кнопку
4. нажать enter

Aetae 04.10.2024 14:54

WASP-121b, что значит "через меню открывалось всё"? Если выполнить все мои указания, то инспектор откроется абсолютно незаметно для страницы. Разве что кнопка пропадает ещё и с потерей фокуса страницей - тогда оный надо просто вернуть.

Nexus, он же сказал, что не табается).

Если говорить о букмарклетах, то проще всего сделать так:
['mousemove', 'mouseenter', 'mouseleave', 'mouseover', 'mouseout'].forEach((event) => addEventListener(event, e => e.stopImmediatePropagation(), true));

И спокойно кликнуть руками.

...ну или так, для надёжности:
for (const event of ['move', 'enter', 'leave', 'over', 'out']) 
  for (const pointer of ['mouse', 'pointer'])
    addEventListener(`${pointer}${event}`, e => e.stopImmediatePropagation(), true);

Nexus 04.10.2024 20:05

Цитата:

Сообщение от Aetae
Nexus, он же сказал, что не табается).

И правда. Я почему-то подумал, что кнопка фокус получает, но не удается на нее нажать используя space / enter.


Часовой пояс GMT +3, время: 16:40.