WebStorm

Рейтинг
161
Регистрация
01.11.2008
br.almighty #:

И вряд ли кто-то будет искать именно это расширение. Других что ли мало?

если они и есть (мне про них неизвестно), то большинство пользователей отдадут предпочтение рейтинговым, а не малоизвестным, а noscript самый старый и известный, но работать они будут по тому же принципу, что и noscript
br.almighty #:

Так а при чем тут расширение? Все что ли отключают js через раширение?

вряд ли кто-то будет копаться в настройках браузера для этого, расширение гораздо более функциональнее и удобнее

br.almighty #:

Когда сайты пишут, ни на какие расширения не смотрят

кто как, я например делаю так, чтобы по возможности работал базовый функционал даже при отключенных скриптах, + 1 условный процент пользователей, с отключенными скриптами никому не помешает

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
postavkin #:

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

Спасибо!


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

странно, я проверял в разных браузерах, не работало только в старом интернет эксплорере
postavkin #:
<input type=text name=name3>

у вас получится примерно так:

<html>
<head>
<meta id="r1" http-equiv="refresh" content="10;url=https://google.com/" />
</head>
<body>
...

<div id="my_form">
                <form action="input_f" method="GET">
                <b>желаемый код</b>, напишите в поле <input type="text" name="name3" id="name3"> <input type=submit value="искать">
                </form>
                </div>

...

<script>
var i = document.getElementById('name3'),r = document.getElementById('r1');
i.oninput = function() {
        if(r!==false){
                r.remove();
                r=false;
        }
        window.stop();
}      
</script>
...

</body>

ps: я заменил querySelector на getElementById


postavkin #:

Я зашел в тему. Вижу тут от Вас появился весьма интересный для меня! вариант, на случай отключенных джаваскрипт. Форумчане - не спрашивайте зачем и почему )) Но для меня он действительно интереснее стандартного решения. При прочих равных. Если он так же будет стабильно работать. 


ps дочитываю ветку. Да, вижу обсуждается, что в вашем коде средствами js удаляется из исходного кода мета. Я так понимаю все же вариант не рабочий (когда js у юзера отключен)?

да, когда отключён, то отредиректит, смотря что вам важнее, отредиректить, даже если js отключен, или наоборот не отредиректить
webinfo #:

Да неужели?! Короткая же у тебя память:

я говорил не про отказ от джаваскрипта как такового, а про возможность использования meta , а на ты я с тобой не переходил
webinfo #:

Каким образом?

<html>
<head>
<meta id="r1" http-equiv="refresh" content="10;url=http://www.google.com/" />
</head>
<body>
<input id="i1" type="text">
<script>
var i = document.querySelector('#i1'),r = document.querySelector('#r1');
i.oninput = function() {
        if(r!==false){
                r.remove();
                r=false;
        }
        window.stop();
}      
</script>
</body>
webinfo #:

Ну и где там input?

а что проблема удалить элемент мета по событию изменения инпута?
Всего: 590