Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Перенаправление при блокировки всплывающих окон. (https://javascript.ru/forum/events/67632-perenapravlenie-pri-blokirovki-vsplyvayushhikh-okon.html)

ureech 28.02.2017 10:15

Перенаправление при блокировки всплывающих окон.
 
Всем привет. На сайте есть компонент для перенаправления по внешним ссылкам. Сообщение о перенаправлении открывается в том же окне, что и ссылка. И переход тоже.Потребовалось сделать в другом. Открыть сообщение в другом окне не проблема.Но тогда естественно перестаёт работать ссылка "отменить", в окне сообщения. Людям это не нравится. Решил с помощью 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); блокируется. Плюс если блокировки нет, то по оканчании времени происходит ещё одно перенаправление. Можно ли как то исправить это?

ksa 28.02.2017 10:23

Цитата:

Сообщение от ureech
window.open(location);

Если получить ссылку на дочернее окно
var win=window.open(location);

Чему будет равен win, если есть блокировка окон?

ureech 28.02.2017 22:38

object Window

ksa 01.03.2017 08:42

Т.е. на отсутствие ссылки не получится ориентироваться... :(


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