Jump to content

Не загружать страницу без Javascript


Recommended Posts

Собственно, нужно сделать следующие

 

если у пользователя в браузере отключен JS то не загружать страницу  совсем, либо показывать ошибку

 

подскажите как реализовать?

Link to post
Share on other sites

 

 

А чем <noscript>У вас Выключен javascript</noscript> не устраивает такой вариант ?

 

в этом варианте я так понимаю просто будет текст ошибки показывать если нет JS при этом загрузиться весь остальной HTML?

Link to post
Share on other sites
  • VIP

мне надо вообще html или body не грузить полностью

 

нет JS - досвидос. как-то так

Вы уж здесь перегнули палку и конкретно. Пользователь решает сам каким вариантом браузера пользоваться, с включенным JS или отключенным. А вы желаете управлять пользователем, ставя ему условия, которые не имеете права устанавливать.

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

Link to post
Share on other sites

Как вариант вижу index.html сделать <p>Для корректной работы нужен Javascript</p> и прописать редирект window.location="http://www.sites.com/index2.html"

Если javascript включен редирект будет на index2.html и там все смотрит, а если нет то увидеть, что нужен Javascript и редиректа не будет, ну или ничего в теге <p> не пишите и будет пустая страница.

 

Или вариант http://php.net/manual/en/function.get-browser.php

 

функция посмотрите, что возвращает Массив [javascript] => 1

 

Я думаю в этом направлении копайте.

Link to post
Share on other sites

в этом варианте я так понимаю просто будет текст ошибки показывать если нет JS при этом загрузиться весь остальной HTML?

 

Да всё правильно, ну ошибки не будет - будет надпись, что между тегами noscript написано.

Link to post
Share on other sites

Как вариант вижу index.html сделать <p>Для корректной работы нужен Javascript</p> и прописать редирект window.location="http://www.sites.com/index2.html"

Если javascript включен редирект будет на index2.html и там все смотрит, а если нет то увидеть, что нужен Javascript и редиректа не будет, ну или ничего в теге <p> не пишите и будет пустая страница.

так и думал сделать, надеялся что есть более красивое решение)

Link to post
Share on other sites

Вы уж здесь перегнули палку и конкретно. Пользователь решает сам каким вариантом браузера пользоваться, с включенным JS или отключенным. А вы желаете управлять пользователем, ставя ему условия, которые не имеете права устанавливать.

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

 

у меня на JS куча проверок стоит и защиты, не хочу чтобы без JS лазили по сайту

 

элементарно выделение текста, ну не хочу я чтобы на моем сайте выделяли и копировали текст, это мое лично право, кому не нравится может идти на следующий сайт :)

Link to post
Share on other sites

так и думал сделать, надеялся что есть более красивое решение)

 

Согласен тот вариант больше на костыль походит. Но в такой задачи вряд ли разумное решение будет. Редкие случаи.

Попробуйте с функцией get_browser() поиграться возможно будет красивое решение. К примеру $x =  get_browser(null); if (!$x->javascript) exit;

Link to post
Share on other sites

в общем сделал вот так стилями

<style>

body {display: none}

</style>

 

и скриптом 

 

<script>
$(document).ready(function() {
 
$("body").css("display", "none");
 
    $("body").fadeIn(500);
</script>
 
таким образом, если JS включен то body покажется, если JS отключен, то body останется display:none
Link to post
Share on other sites
  • VIP

1.Вариант с get_browser() шаред хостинге может не проканать, так как в php.ini должен быть прописан путь к php_browscap.ini, который не всегда есть.,

2. Простым способом (без перезагрузки страницы) не сделать, так как сначала идет обработка PHP, а только потом уже всего остального. Обычно делают сохранение в сессию, потом чтение сессии с добавкой GET запроса, что "искажает" URL страницы, типа index.php?js=on

3. Как вариант использовать JS, который загружает страницу прописанную (аля AJAX). Так пробовал один раз, причем я знал какую страницу грузить в точности. Если у Вас стоит какой-нибудь движок, то тут могут быть проблемы.

4. Решение Transformer решит проблему, но это больше отпугнет новичков. Кому надо, тот быстро решит проблему. Причем, неизвестно, как к этому отнесутся ПС.

Link to post
Share on other sites
  • VIP

Как вариант  :)

<!DOCTYPE html>
<html id="nojs" lang="ru">
<head>
        <script>document.documentElement.id = "js"</script>
        <style>
                #js .mess {
                        display: none;
                }
        </style>
</head>
<body>
        <div class="mess">
                Включи JS, а то я за себя не ручаюсь, век воли не видать!
        </div>
</body>
</html>

Похожее решение, что с CSS.

Link to post
Share on other sites

1.Вариант с get_browser() шаред хостинге может не проканать, так как в php.ini должен быть прописан путь к php_browscap.ini, который не всегда есть.,

2. Простым способом (без перезагрузки страницы) не сделать, так как сначала идет обработка PHP, а только потом уже всего остального. Обычно делают сохранение в сессию, потом чтение сессии с добавкой GET запроса, что "искажает" URL страницы, типа index.php?js=on

3. Как вариант использовать JS, который загружает страницу прописанную (аля AJAX). Так пробовал один раз, причем я знал какую страницу грузить в точности. Если у Вас стоит какой-нибудь движок, то тут могут быть проблемы.

4. Решение Transformer решит проблему, но это больше отпугнет новичков. Кому надо, тот быстро решит проблему. Причем, неизвестно, как к этому отнесутся ПС.

 

Я поэтому и дал ссылка на документацию там как раз и прописано это. Мне кажется письмом в поддержку хостинга можно решить проблему. Обычно это решаемо :)

 

У меня единственный вопрос как к этому отнесутся поисковые системы. 

Link to post
Share on other sites
  • VIP

 

 


У меня единственный вопрос как к этому отнесутся поисковые системы. 

А как они отнесутся? Бот с включенным JS лазает по сайту :-) Они уже Аякс даже научились "кушать".

Link to post
Share on other sites

Из Вконтакта простой пример:

<noscript><meta http-equiv="refresh" content="0; URL=/badbrowser.php"></noscript>

Редиректит на страницу https://vk.com/badbrowser.php

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

Link to post
Share on other sites
  • Модератор

Из Вконтакта простой пример:



<noscript><meta http-equiv="refresh" content="0; URL=/badbrowser.php"></noscript>

Редиректит на страницу https://vk.com/badbrowser.php

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

Все гениальное - простое!

Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...