Есть страница, в самом верху которой подключается скрипт, и в нем есть код if(apcu_fetch($_SERVER['REMOTE_ADDR'])[5]!==1) { echo '<noscript> <meta http-equiv="refresh" content=\'0; url = temp_page.php\' /> </noscript>'; } Ведет странно себя верстка из-за этого, как бы придумать чтобы проверить наличие яваскрипта у клиента до загрузки страницы, при этом не поломав верстку. Если я скрипт подключу в сайте после строки <!DOCTYPE html> то все норм, я не хочу например загружать страницу вообще если отключен яваскрипт, можно как то выкрутится?
забить болт на попытки детектировать отключённый js и исходить из допущения, что он есть у всех и включён у всех.
это не решение проблемы) --- Добавлено --- Я детектирую его без проблем, только изза этого ведут себя хаточино элементы верстки, например textarea не грузит данные, input меняют немного отступы
@MouseZver Я пошутить пытался Всё равно интернетом на старых кнопочных мобилках не пользуются, разве что вап сайтами специально под них, не знаю остались ли такие ещё
Решение достаточно странное, нафига тут мета тэг вообще? Куда ты его засовываешь head, body? В футере (перед </body>) Код (Text): <noscript><img src="is_no_js.php"></noscript><script>document.addEventListener('DOMContentLoaded', function() { document.querySelector('html').classList.remove('no-js'); });</script> а в тэге html класс no-js, а там уже стили рисовать для класса .no-js. А ты уверен что включен показ картинок? Может iframe использовать? А если браузер новый и айфреймы не работают? Ты уверен что вообще браузер умеет рисовать css. Проблема на пустом месте. Хочешь что бы везде выглядело одинаково, отдавай плаин текст, но один хрен шрифт будет другим
Автору, видимо хочется не потерять ту часть клиентов, которая где-то за углом ночью услышала историю про ява-скрипт майнеров, и полезла гуглить, как вырубить ява-скрипт в браузере, чтобы не намайнили.. по мне, так не нужны такие клиенты, пусть еще свет вырубят, вместе с яваскриптом и до IE5 откатятся
Просто получается такая конструкция <!DOCTYPE html> Подключенный скрипт <noscript> <meta http-equiv="refresh" content=\'0; url = temp_page.php\' /> </noscript> <!DOCTYPE html> код страницы пошел Реально ли такое сделать? мнения о том нужно или нет делать не интересует, я не про это спрашивал. Я спросил идеи о том как реализовать именно эту конструкцию. --- Добавлено --- В этом вся и фишка что это не в коде страницы самой, а над ней, и если его нет, страница вообще не будет грузится, в этом вся и сложность, если бы это было в коде страницы проблем нету естественно, то тут другая история
Не вижу проблем 1. Положить болт на тех у кого нет js 2. Засунуть эту херь в код страницы что бы не было проблем --- Добавлено --- 3. Ещё вариант HTML: <style>.no-js { position: fixed; top: 0; left: 0; right: 0; bottom: 0; color: white; background: red; font-size: 40px; text-align: center; }</style> <noscript> <div class="no-js">Включи JS! НЕМЕДЛЕННО! А здесь маленькая инструкция возможно....</div> </noscript>
Спасибо за ответы, поставлю вопрос прямо. Реально ли сделать такую конструкцию как я описал? не пихая в код страницы проверку. Да или нет?
про реальность отсутствия скрипта (нет, не случай noscript, а отсутствие нужного скрипта): Роскомнадзор косит адреса из пулов CDN просто блеять вслепую из пулемёта. поэтому вероятность, что чья-то легальная страничка вдруг лишится JS достаточно реальна. --- Добавлено --- или в результате слишком агрессивного adblock… для тупых: это не значит, что надо отказываться от javascript или от CDN это значит, что показ какого-то маркера типа "у вас проблемы с загрузкой javascript" был бы хорошим тоном. --- Добавлено --- «выключите AdBlock или смените место жительства»
Я делаю так, и то на всякий случай. В самом верху страницы: HTML: <noscript> <div style="width:100%; height:50px; background-color: red; color: white;"> <p>У вас отключен JavaScript.</p> <p>Сайт может работать некорректно.</p> </div> </noscript>
ТС, не обращай внимания - просто дефицит общения, всем хочется потрепаться. По теме. 1) А разве тег "meta" не обязан быть внутри тега "head" ? (см. https://webref.ru/html/meta ) Попробуй, должно помочь. 2) Проверь и исправь код. В html не должно быть подобного [\'0].