3

Is this correct? If not what is the correct syntax

I am new to php hence trying to learn.

    <?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');

        }

     ?>

Or is there a better way to handle this?

4

10 に答える 10

12

<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 検出 (および機能) を処理するより良い方法は、Modernizr を使用することです: http://modernizr.com

この SO の質問を確認してください: HTML の「no-js」クラスの目的は何ですか?

基本的な例 (Modernizr なし)

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
    }
});

上記のコードは、modernizr がどのように機能するかを示す非常に基本的な例です。私はそれを使用することを強くお勧めします。

モダナイザーをチェック

于 2013-01-02T12:16:16.620 に答える
3

これを達成するには(ユーザーがJSを有効にしているかどうかをPHPから本当に知る必要がある場合):

<script>
// AJAX call to your PHP script to tell it that JS is enabled
</script>
于 2013-01-02T12:08:08.957 に答える
0

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>
于 2014-07-22T14:01:35.717 に答える
0

No that is not correct. All code is interpreted, and why are you using string literals instead of actual booleans? And not to mention, you're using an assignment operator instead of a comparison operator in your if statement.

于 2013-01-02T12:05:52.210 に答える
0

It won't work, because <noscript> induces a behavior in the browser, and you are checking your condition server side.

于 2013-01-02T12:07:06.340 に答える
-1

あなたのスクリプトでそれを行うことができると思います.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>';
   }
于 2016-11-08T14:16:22.023 に答える
-2

jQuery と CSS でこれを行うことができます。

<body style='display: none;'>
<!--- Content goes here --->
</body>
<script>
//jQuery
$("body").css("display","block");
//Pure JavaScript
document.body.style.display="block";
</script>
于 2013-09-30T23:45:56.533 に答える
-6

どうですか?

<noscript>
<?php 
//do the include thing right here 
$a=1;
?>
</noscript>
<?php
if(isset($a)){
//do nothing
}else {
//add the include u want 
};
<?
于 2013-01-02T12:32:02.560 に答える