Похожие чаты

Привет! Подскажите, пожалуйста. На событие закрытии сделки вывожу свой попап с

предупреждением.
В документации https://dev.1c-bitrix.ru/api_help/js_lib/sidepanel/events/events.php
описан пример, как отменить закрытие вкладки с помощью инструкции event.denyAction();
Эту инструкцию потом можно отменить и закрыть вкладку? Или она окончательная?

25 ответов

78 просмотров

Не понял вопроса

ну если толко кэш в true и еще раз открыть

ну или не так понял если слайдер просто закрыть, то инстанс получить проблем нет и вызвать close, в обработчике завести какую переменную для контроля включения лока закрытия

Alex-Mak Автор вопроса
Andrew Zahalski
ну или не так понял если слайдер просто закрыть, т...

Если "лок закрытия" задействован, то его уже потом никак не отменить в последующем коде? Ну чтобы исходное закрытие все же произошло.

Alex-Mak Автор вопроса
Andrei Nikolaev
Не понял вопроса

Если "лок закрытия" (event.denyAction();) задействован в обработчике, то его уже потом никак не отменить в последующем коде? Чтобы это исходное закрытие все же завершилось успешно.

У вас кажется проблемы с восприятием событийной модели. Есть действие, которое порождает событие. Есть обработчики которые подписываются на событие и могут выдавать реакцию. Например закрытие слайдера - это действие, оно порождает событие закрытия слайдера, он в свою очередь вызывает обработчики, которые на это событие подписаны. Действие можно совершать много раз и каждом обработчике можно эту ситуацию обработать. Например: сделать какое-нибудь глобальное хранилище, при выполнении действия проверить в нем условия закрытия и если они не соблюдаются вызвать deny - о чем вам и говорил коллега раньше

Alex Mak
Если "лок закрытия" задействован, то его уже потом...

ну от логики на то он и обработчик что вызывается и без async так что просто вызываешь закрытие (передав инстанс дальше себе по коду) и в текущей отмене учитываешь, что это твой вызов без закрытия

Alex-Mak Автор вопроса
Andrei Nikolaev
У вас кажется проблемы с восприятием событийной мо...

Так и понимаю, как вы описали. Закрытие слайдера -> Событие -> Обработчик события Но мы видим, что обработчику дан метод влиять на процесс "Закрытия слайдера". Это метод отмены закрытия - event.denyAction(); Отсюда и вопрос, может быть есть метод отмены event.denyAction(); ? Т.е. отказ от незакрытия.

Alex Mak
Так и понимаю, как вы описали. Закрытие слайдера -...

Нет. Если метод вызван, то в данном случае нельзя отменить его поведение.

что ты там делаешь? сообщение вы действительно хотите покинуть окно? так стандартный конфирм всунь :)))

Alex-Mak Автор вопроса

Разрешите спросить про "глобальное хранилище". Цель запомнить выбор пользователя, чтобы учитывать его в следующем событии. Какой выбор у нас есть? Сессия, куки, пользовательское поле в сделке. Правильно?

Alex-Mak Автор вопроса
Andrew Zahalski
что ты там делаешь? сообщение вы действительно хот...

Что такое конфирм? Я знаю BX.SidePanel.Instance.close([immediately=false]) который закрывает текущую вкладку. Но проблема в том, что это вызывает другое событие и новый запуск обработчика, который не учитывает предыдущий выбор пользователя.

Alex Mak
Что такое конфирм? Я знаю BX.SidePanel.Instance.cl...

какой кейс? для чего прерываешь?

Alex-Mak Автор вопроса
Andrew Zahalski
какой кейс? для чего прерываешь?

Пользователь закрывает сделку. В обработчике проверяю, что в сделке подвязано >2 контактов. Блокирую закрытие сделки и показываю предупреждение с двумя кнопками [Исправить] [Оставить как было]. Обработчик кнопки [Оставить как было] должен закрыть предупреждение и саму сделку. Но новое закрытие сделки вызывает новое событие в которм не учитывается предыдущий выбор пользователя.

Alex-Mak Автор вопроса
Alex Mak
Что такое конфирм)

let isBoss = confirm("Ты здесь главный?"); alert( isBoss ); // true, если нажата OK

Alex Mak
Что такое конфирм)

https://learn.javascript.ru/alert-prompt-confirm

Alex Mak
Что такое конфирм)

он блокирует выполнение кода, так что дождешься выбора юзера и узнаешь что нажал и закроешь окно или отменишь единственное что сообщение не сильно красивое :)

Alex-Mak Автор вопроса
Andrew Zahalski
он блокирует выполнение кода, так что дождешься вы...

Понял, спасибо! Это действительно решение. Но некрасивое окно. Либо другое решение. Где-то (где?) запомнить выбор пользователя, чтобы учесть его в следующем закрытии. Андрей предложил "localstorage". Пойду почитаю, что это.

Alex Mak
Понял, спасибо! Это действительно решение. Но некр...

да не храниличе тебе нужно а просто глобальная переменная if(!window._facker_slider){ event.denyAction(); window._facker_slider = true; }else{ window._facker_slider = false; } например

Alex-Mak Автор вопроса
Andrew Zahalski
да не храниличе тебе нужно а просто глобальная пер...

А надо заботиться об удалении этой глобальной переменной? Ведь это выбор пользователя. Мне надо запомнить, чтобы учесть его только в следующем событии.

Alex Mak
А надо заботиться об удалении этой глобальной пере...

на следующем хите ее не будет ну в false поставить нужно, иначе при открытии другого слайдера она будет в рамках текущего хита

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
@Benzenoid can you tell me the easiest, and safest way to bu.y HEX now?
Živa Žena
20
This is a question from my wife who make a fortune with memes 😂😂 About the Migration and Tokens: 1. How will the old tokens be migrated to the new $LGCYX network? What is th...
🍿 °anton°
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
What is the Dex situation? Agora team started with the Pnetwork for their dex which helped them both with integration. It’s completed but as you can see from the Pnetwork ann...
Ben
1
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Anyone knows where there are some instructions or discort about failed bridge transactions ?
Jochem
21
@lozuk how do I get my phex copies of my ehex from a atomic wallet, to move to my rabby?
Justfrontin 👀
11
Карта сайта