Это верно? Если не правильный синтаксис
Я новичок в php, поэтому стараюсь учиться.
<?php // Check browser for JavaScript support $jsSupport='true'; ?> <noscript><?php $jsSupport='false'; ?></noscript> <?php if ($jsSupport == 'false') { include ('no-script-layout.php'); } else { include ('regular-layout.php'); } ?>
Или есть лучший способ справиться с этим?
<noscript>
Вы можете использовать теги noscript
для отображения содержимого в браузерах с отключенным javascript или перенаправлением их на другую страницу (например, nojs-version.php
).
<!-- Redirect to another page (for no-js support) (place it in your <head>) --> <noscript><meta http-equiv="refresh" content="0;url=nojs-version.php"></noscript> <!-- Show a message --> <noscript>You don't have javascript enabled! Please download Google Chrome!</noscript>
Лучший способ справиться с обнаружением javascript (& feature) – использовать Modernizr: http://modernizr.com
Проверьте этот вопрос: Какова цель класса HTML «no-js»?
Вы можете добавить класс no-js
на загрузку страницы к тегу <body>
. Затем, когда страница загружается и если включен javascript, вы можете заменить no-js
на js
следующим образом:
// When the DOM is ready & loaded, do this.. $(document).ready(function(){ // Remove the `no-js` and add the `js` (because JS is enabled (we're using it!) $('body').removeClass('no-js').addClass('js'); // Assign it to a var so you don't traverse the DOM unnecessarily. var useJS = $('body').hasClass('js'); if(useJS){ // JS Enabled } });
Вышеприведенный код является очень простым примером того, как работает модернизация. Я бы очень рекомендовал использовать это.
Проверьте Модернизр
Для этого (если вам действительно нужно знать PHP, если у пользователя есть JS):
<script> // AJAX call to your PHP script to tell it that JS is enabled </script>
Нет, это неправильно. Весь код интерпретируется и почему вы используете строковые литералы вместо фактических логических значений? И не говоря уже о том, что вместо оператора сравнения в вашем операторе if вы используете оператор присваивания.
Это не сработает, потому что <noscript>
вызывает поведение в браузере , и вы проверяете свою сторону сервера условий.
это работает очень хорошо, если JavaScript отключен
HTML
<noscript> <div id="noscript-warning">This Application works best with JavaScript enabled</div> </noscript>
CSS
<style> #noscript-warning { font-family: sans-serif; position: fixed; top: 0; left: 0; width: 100%; z-index: 101; text-align: center; font-weight: bold; font-size: 120%; color: #fff; background-color: #ae0000; padding: 5px 0 5px 0; </style>
Это не сработает, потому что php является предварительным процессором на стороне сервера, который ничего не знает о браузере пользователя, отличном от того, что предусмотрено в исходном запросе браузера, в котором нет ничего о возможности сценариев.
Таким образом, весь PHP будет оцениваться, а любой, который приводит к его вставке в поток HTML, например, из эхо-заявлений, сделает его в браузере как часть запрошенной страницы, где будет отображаться весь вывод PHP между тегами noscript, если javascript отключен.
Я думаю, что вы можете сделать это в своем скрипте, в скрипте index.php, запишите этот код:
<?php //true will be returned only if javascript is not enabled $JSEnabled = "<noscript>true</noscript>"; //then you can do echo $JSEnabled to see the result yourself //in a condition statement ... if($JSEnabled) { // ... code for JS Enabled } else { // ... code not JS Disabled }
ОБНОВИТЬ :
$js = null; $js = (boolean) '<noscript>false</noscript>'; //the noscript text : false is shown when no js support detected in your browser. this value will be converted to a boolean value for testing purpose. if($js) { //if $js gets the no script text , that means that the browser is not supporting the js, so this line will check if $js is set to false , the else statement is fired , otherwise the if statement is fired echo 'Your javascript is enabled<br>'; } else { echo 'Your javascript is disabled<br>'; }
Я получил его для работы для меня, обернув тег комментария HTML внутри тегов noscript:
<noscript><!-- </noscript> <?php $a = 42; echo $a; ?> <noscript> --> </noscript>
У меня были сомнения в этом … но это работает, так что … Дайте мне знать, если есть какой-то странный случай, где это не так … Надеюсь, это поможет с вашими проблемами 🙂
Yo может сделать это с помощью jQuery и CSS:
<body style='display: none;'> <!--- Content goes here ---> </body> <script> //jQuery $("body").css("display","block"); //Pure JavaScript document.body.style.display="block"; </script>
<noscript> <?php //do the include thing right here $a=1; ?> </noscript> <?php if(isset($a)){ //do nothing }else { //add the include u want }; <?