Могу ли я определить, было ли предупреждение/подтверждение отклонено пользователем или чрезмерно усердным рекламным блоком?

Некоторые функции на нашем сайте зависят от confirm диалогов. К сожалению, для некоторых пользователей с блокировкой рекламы в браузере Chrome диалоги подтверждения немедленно закрываются, что означает, что у пользователя нет возможность их принять. (На нашем сайте нет рекламы и вредоносных всплывающих окон.)

Я хотел бы дать таким пользователям ссылку на альтернативный способ выполнения их действия, но не показывая это в лицо человеку, который фактически сам закрыл всплывающее окно.

Удалить эту запись?
Нет.
Вы уверены? Вот еще один способ удалить его, если он не работает для вас.

Это было бы глупо. Поэтому я бы хотел, чтобы это сообщение отображалось только в том случае, если диалоговое окно confirm было закрыто без вмешательства пользователя.

$(document).ready(function() {
var c = confirm('Are you sure you wish to delete this entry?');
if (c) {
    $.ajax(
        '/api/show/competition/delete',
        {
            'method': 'POST',
            'data': { 'id' : 9 },
            'dataType': 'json',
            'complete': function(response, status) {
                if (response.responseJSON.error) {
                    alert(response.responseJSON.message);
                    window.location.reload();
                } else {
                    document.location.href = "/show/application/competition";
                }
            }
        }
    );
} else {
    document.location.href = "/path/to/variant/page/with/alternative/delete/method";
}
});

См. также: JavaScript подтверждает, что он не работает в Chrome.


person TRiG    schedule 11.07.2018    source источник
comment
Возможно, мне придется поработать над таймингом.   -  person TRiG    schedule 11.07.2018