Почему я должен использовать <noscript>? - PullRequest
1 голос
/ 13 марта 2012

Юмор меня немного здесь.

Почему я должен использовать <noscript> на своих страницах? Альтернативой (по крайней мере, той, которую я использую) является комбинация Modernizr + no-js class , которая используется с (например) HTML 5 Boilerplate, и до сих пор этого было достаточно во всех случаях использования.

Единственная причина, по которой я могу подумать об использовании <noscript>, - это условная загрузка файлов ресурсов, когда JS не включен (наиболее вероятно, переопределение CSS?). Я не уверен, есть ли способ сделать это без JS без использования <noscript>, но даже в этом случае кажется, что его можно обойти.

Множество очевидных ответов ниже.

Да, <noscript> используется для условного отображения / скрытия элементов HTML для клиента, когда Javascript недоступен. Я знаю это. Ты знаешь что. Каждый, кто работает с HTML, скорее всего, должен это знать.

Однако есть много других способов сделать то же самое, большинство из которых предпочтительнее, чем <noscript>. Одним из них является html.no-js класс, который переключает Modernizr, о котором я упоминал выше.

Итак, идея, стоящая за вопросом, заключается в следующем: может ли <noscript> сделать что-то уникальное для веб-разработчика? То есть это достаточно важно, но иначе нет другого способа?

@ Guffa ниже хорошо показывает рекламу.

Ответы [ 6 ]

5 голосов
/ 13 марта 2012

Ну зачем тебе? Если он вам не нужен, просто не используйте его.

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

4 голосов
/ 13 марта 2012

когда браузер пользователя не поддерживает Javascript или Javascript отключен. элемент, который в покажет.

3 голосов
/ 13 марта 2012

Если я правильно помню, один из ключевых вариантов использования, определенных для оправдания его включения в HTML5 (в отличие от того, чтобы классифицировать его как устаревший), заключался в том, что его можно использовать с <meta http-equiv="refresh" ... внутри него, так что если JS недоступен, пользователь автоматически перенаправляется на не-JS версию веб-сайта.

1 голос
/ 13 марта 2012

Если у вас есть страница с критически важным JS, используйте noscript, чтобы пользователи знали, что их JS отключен, и им необходимо включить его для просмотра страницы.

0 голосов
/ 12 февраля 2016

Лучший вариант использования noscript - это когда вы пытаетесь использовать javascript для отсрочки загрузки ресурсов для повышения производительности страницы. Рассмотрим простой образ ленивого загрузчика:

<style>
    .no-js .lazy-load { display:none }
</style>
<img data-src="/path/to/img.jpg" src="/placeholder.png" class="lazy-load">
<noscript>
    <img src="/path/to/img.jpg">
</noscript>
<script>(function ($) {
    // http://stackoverflow.com/a/488073/1459873
    function isScrolledIntoView(elem) {
        var $elem = $(elem);
        var $window = $(window);
        var docViewTop = $window.scrollTop();
        var docViewBottom = docViewTop + $window.height();
        var elemTop = $elem.offset().top;
        var elemBottom = elemTop + $elem.height();
        return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));
    }
    function lazyLoad() {
        $('img.lazy-load').filter(function () {
            return isScrolledIntoView(this);
        }).each(function () {
            var $this = $(this);
            $this.attr('src', $this.data('src'))
                 .removeClass('lazy-load')
                 .addClass('lazy-loaded');
        });
    }
    $.ready(lazyLoad);
    $(window).on('load scroll resize', lazyLoad);
}(jQuery))</script>

Если вы попытаетесь скрыть загруженное ленивым образом с помощью классов css, резервный вариант no-js все равно загрузит изображение.

0 голосов
/ 13 марта 2012
Тег

используется, если отключен JavaScript браузера.Содержимое внутри отображается только в том случае, если в вашем браузере отключен JavaScript.

Вы можете использовать его для предупреждающих сообщений, таких как: «Хе, ваш JavaScript отключен».

...