Показать сообщение отдельно
  #1 (permalink)  
Старый 28.02.2017, 10:15
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

Перенаправление при блокировки всплывающих окон.
Всем привет. На сайте есть компонент для перенаправления по внешним ссылкам. Сообщение о перенаправлении открывается в том же окне, что и ссылка. И переход тоже.Потребовалось сделать в другом. Открыть сообщение в другом окне не проблема.Но тогда естественно перестаёт работать ссылка "отменить", в окне сообщения. Людям это не нравится. Решил с помощью js решить вопрос. Дописал пару строк кода и вроде работает. Но. На странице есть код таймера, который при окончании заданного периода перенаправляет по ссылке.
$(function () {
            var timer    = $('#timer');
            var delay    = +{$time};
            var location = "{$url}";
            $(timer).html(delay);
            var interval = setInterval(function () {
                if(delay) { delay--; }
                $(timer).html(delay);
                if(delay <= 0){
                    clearInterval(interval);
                    window.location.href=location;
                }
            }, 1000);
        });

И опять же, в этом же окне. Я внёс изменения на так
... if(delay <= 0){
                    clearInterval(interval);
                    window.open(location);
		    history.go(-1)
                }


Но теперь, если в браузере стоит блокировка всплывающих окон, то происходит редирек обратно, те срабатывает history.go(-1),а window.open(location); блокируется. Плюс если блокировки нет, то по оканчании времени происходит ещё одно перенаправление. Можно ли как то исправить это?

Последний раз редактировалось ureech, 28.02.2017 в 10:21.
Ответить с цитированием