Поскольку я всегда хочу дать браузеру что-то стоящее, на что я смотрю, я часто использую этот трюк:
Во-первых, любая часть страницы, которой требуется JavaScript для правильной работы (включая пассивные элементы HTML, которые модифицируются с помощью вызовов getElementById и т. Д.), Предназначена для использования «как есть», при условии, что не доступен javaScript. (задумано так, как будто его там не было)
Любые элементы, которые требуют JavaScript, я размещаю внутри тега что-то вроде:
<span name="jsOnly" style="display: none;"></span>
Затем в начале моего документа я использую .onload
или document.ready
в цикле getElementsByName('jsOnly')
, чтобы установить .style.display = "";
для включения зависимых от JS элементов. Таким образом, браузеры, не поддерживающие JS, никогда не должны видеть зависимые от JS части сайта, и, если они у них есть, они появляются сразу же, как только будут готовы.
После того, как вы привыкли к этому методу, довольно легко гибридизировать ваш код для обработки обеих ситуаций, хотя я только сейчас экспериментирую с тегом noscript
и ожидаю, что он будет иметь некоторые дополнительные преимущества.