Как сделать редирект в php через паузу после отрисовки страницы?

1 234
Елена П.
На сайте с 02.10.2020
Offline
46
#21
Владимир #:
зачем вообще тут джаваскрипт, а если он отключен, включен noscript, я например отключаю на незнакомых сайтах javascript и добавляю в доверенные только те сайты, в которых уверен, это делается простым тэгом мета

Вы ЧЕ намудрили то ? мммм?  

--------------------------------------------------

postavkin  ,  используйте код , что написал  br.almighty 

 <script>
        let i = document.querySelector('#input');
        let t = setTimeout(function(){
            window.location = 'http://site.io/'
        }, 10000);
        i.oninput = function() {
            clearTimeout(t);
        }
    
</script>

только селектор замените и location /   


postavkin - Профиль вебмастера - Форум об интернет-маркетинге
postavkin - Профиль вебмастера - Форум об интернет-маркетинге
  • 2023.03.31
  • searchengines.guru
postavkin - Профиль вебмастера
Елена П.
На сайте с 02.10.2020
Offline
46
#22

Только еще оберните в

document.addEventListener('DOMContentLoaded', function ()

{}}

P
На сайте с 06.01.2009
Offline
592
#23
Елена П. #:

Только еще оберните в

document.addEventListener('DOMContentLoaded', function ()

{}}

Так сложно юзеру моего уровня. 
Если не сложно - покажите, пожалуйста, итоговый результат. Спасибо заранее.

P
На сайте с 06.01.2009
Offline
592
#24
Владимир #:
<script>
var i = document.getElementById('name3'),r = document.getElementById('r1');
i.oninput = function() {
        if(r!==false){
                r.remove();
                r=false;
        }
        window.stop();
}      
</script>

круть! все работает! 

Спасибо!


зы единственно что, даже при заполненном поле все равно происходит редирект. Но думаю сделаю 15 сек, на ввод кода это более чем достаточно

I7
На сайте с 12.06.2008
Offline
365
#25
postavkin #:
зы единственно что, даже при заполненном поле все равно происходит редирект. Но думаю сделаю 15 сек, на ввод кода это более чем достаточно

Потому что всё это делается совсем другими средствами, а не костылями, которые вам тут насоветовали.

WS
На сайте с 01.11.2008
Offline
146
#26
postavkin #:

круть! все работает! 

Спасибо!


зы единственно что, даже при заполненном поле все равно происходит редирект. Но думаю сделаю 15 сек, на ввод кода это более чем достаточно

странно, я проверял в разных браузерах, не работало только в старом интернет эксплорере
P
На сайте с 06.01.2009
Offline
592
#27
Владимир #:
странно, я проверял в разных браузерах, не работало только в старом интернет эксплорере

YВсе перепроверил. Сделал все как указано. Хром, ФФ Опера - перекидывают по редиректу даже если поле input заполнено но не нажато "отправить".

В принципе меня всё устраивает. Спасибо

P
На сайте с 06.01.2009
Offline
592
#28
Ilya74 #:

Потому что всё это делается совсем другими средствами, а не костылями, которые вам тут насоветовали.

Делается. Да. Вами  делается, а я сделал как мне смогли подсказать. 

br.almighty
На сайте с 13.07.2021
Offline
68
#29
postavkin #:

YВсе перепроверил. Сделал все как указано. Хром, ФФ Опера - перекидывают по редиректу даже если поле input заполнено но не нажато "отправить".

В принципе меня всё устраивает. Спасибо

Рискну предположить, что вы сделали через meta тег, а не через чисто js.

Если удалить этот мета тег, как Владимир вам подсказывает, то само правило не удаляется, поэтому редиректит. Это предположение, возможно ошибаюсь.

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

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

WS
На сайте с 01.11.2008
Offline
146
#30
br.almighty #:

Рискну предположить, что вы сделали через meta тег, а не через чисто js.

Если удалить этот мета тег, как Владимир вам подсказывает, то само правило не удаляется, поэтому редиректит. Это предположение, возможно ошибаюсь.

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

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

refresh, о котором речь, останавливается не при удалении тэга мета, а при вызове метода window.stop(); , удаление элемента meta я добавил "на всякий случай" , скорее всего у ТС просто джаваскрипт не выполняется по какой-то причине, который останавливает релоад, да, я тоже хотел предложить объединить с вашим кодом:



    <script>
        let i = document.querySelector('#input');
        let t = setTimeout(function(){
            window.location = 'http://site.io/'
        }, 10000);
        i.oninput = function() {
            clearTimeout(t);
        }
    
</script>

<noscript>
        <meta HTTP-EQUIV="refresh" content="15;url=http://site.io/" />
</noscript>

протестировал, работает, для сайтов "по умолчанию", в расширении noscript  тэги noscript разрешены

кстати, как побочный эффект использования расширения noscript  - можно настроить отключение рекламы, трэкеров различных, это для тех, кто считает расширение "бесполезным" и для "параноиков"

jpg image2.jpg
1 234

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий