Как узнать повяление такого сообщения на странице ?
Хочу в корзине на aliexpress автоматически нажимать ОК при удалении товара. :)
Надоело каждый раз кликать подтверждение удаления. Спасибо. gif ролик https://psv4.userapi.com/c856320/u47...9Tx2_NJRU5Ss5A Сейчас у меня такой код
var korzinaDelOKid = ("body > div.next-overlay-wrapper.opened > div.next-dialog.next-closeable.next-overlay-inner > div.next-dialog-footer.next-align-left > button.next-btn.next-medium.next-btn-primary.next-dialog-btn");
// Ожидание клика
if (1)
{document.body.onclick = function(e)
{
console.log('СТАРТ ОБРАБОТКИ КЛИКА\n');
setTimeout(ClikOKdelete, 200); // задержка 200 милисекунд и запуск опроса наличия кнопки
// alert ('click');
}
}
function ClikOKdelete (){
if (document.querySelector (korzinaDelOKid)); //Проверка есть ли элемент кнопки подтверждения удаления из корзины
{
console.log('Кнопка ОК подтверждения удаления обнаруженаы\n');
// document.querySelector (korzinaDelOKid).click();
}
};
он код кнопки обнаруживает, но даже когда это окно не появляется на экране. В любом место экрана кликаю мышкой и сообщает что кнопка обнаружена. Не пойму почему. |
Цитата:
Когда она сама или какой то ее родительский блок имеет display:none. |
Я думаю это оверлейный вывод сообщения.
Как отследить что появилось оверлейное окно ? |
Цитата:
у меня и сейчас так определяет наличие кнопки когда она невидима, даже ничего делать не пришлось )) Мне надо наоборот когда видима. |
Проверять offsetWidth кнопки. Когда видима, offsetWidth будет не равно 0
|
Цитата:
if ((document.querySelector(korzinaDelOKid).offsetWidth)!=0); //Проверка есть ли кнопка подтверждения удаления из корзины условие проходит проверку даже если окна нет. а вывод в консоль собщает Cannot read property 'offsetWidth' of null Но если окно есть то выдает размер. Но почему условие проходит если условие 'offsetWidth' of null Не понятно...
var korzinaDelOKid = ("body > div.next-overlay-wrapper.opened > div.next-dialog.next-closeable.next-overlay-inner > div.next-dialog-footer.next-align-left > button.next-btn.next-medium.next-btn-primary.next-dialog-btn");
function ClikOKdelete ()
{
if ((document.querySelector(korzinaDelOKid).offsetWidth)!=0); //Проверка есть ли кнопка подтверждения удаления из корзины
{
console.log('Кнопка ОК подтверждения удаления обнаруженаы\n');
console.log(document.querySelector (korzinaDelOKid).offsetWidth);
// document.querySelector (korzinaDelOKid).click();
}
}
// Ожидание клика
if (1)
{document.body.onclick = function(e)
{
console.log('СТАРТ ОБРАБОТКИ КЛИКА\n');
setTimeout(ClikOKdelete, 200); // задержка 200 милисекунд и запуск опроса наличия кнопки
// alert ('click');
}
}
|
if ((document.querySelector(korzinaDelOKid).offsetWid th)!=0); //Проверка есть ли кнопка подтверждения удаления из корзины
Что означает эта ; ? |
Цитата:
Вот накидал:
function clikOKdelete() {
console.log('Появилось окно');
let btnOK = document.querySelector('button.next-btn.next-btn-primary.next-dialog-btn');
console.log(btnOK);
let eventClick = new Event('click');
btnOK.dispatchEvent(eventClick);
}
var mutationObserver = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if(mutation.oldValue == 'next-dialog next-closeable next-overlay-inner fadeInDown') {
clikOKdelete();
}
});
});
mutationObserver.observe(document.documentElement, {
attributes: true,
characterData: true,
childList: true,
subtree: true,
attributeOldValue: true,
characterDataOldValue: true
});
Не пойму почему событие клика из dispatchEvent не срабатывает. А так логи расставил - обнаружение срабатывает правильно. |
voraa,
о,вот косяк ))) Но непомогло... |
MC-XOBAHCK,
cпасибо, давно хотел заняться MutationObserver! В прошлый раз не получилось с ним, надеюсь в этот раз получится. |
| Часовой пояс GMT +3, время: 22:40. |