Home > Net >  Load different PHP files based on JavaScript availability
Load different PHP files based on JavaScript availability

Time:11-20

I currently have the code below (PHP)

<?php
    require_once __DIR__.'/includes/Connect.php';
    require_once __DIR__.'/includes/Nojs.php';
    require_once __DIR__.'/includes/Main.php';
    require_once __DIR__.'/includes/footer.php';
?>

I want Main.php to load only if JavaScript is enabled, and Nojs.php to load only is JavaScript is disabled.

Surrounding Nojs.php with tags does nothing (See below code)

<?php
    require_once __DIR__.'/includes/Connect.php';
?>
<noscript>
    <?php
        require_once __DIR__.'/includes/Nojs.php';
    ?>
</noscript>
<?php
    require_once __DIR__.'/includes/Main.php';
    require_once __DIR__.'/includes/footer.php';
?>

Since I know the PHP cannot access the browser as it is done server-side, is it possible to try to use HTML (Like I attempted) or other JavaScript to get it to work? Thanks in advance.

EDIT:

Creating a new file for nojs.php and using meta refresh works, but there is a noticeable delay. The page starts loading the original URL and then redirects to the other. A visitor can quite easily cancel the page load process and stop the page load before the redirect. They will have a partly loaded page, but all the content they really need will be there. Is there a way to force an immediate redirect (Yes, "content" is set to "0" per the below anwser)?

CodePudding user response:

Create another PHP file with no js version when first PHP loaded it will check if no js support will redirect to no js version of PHP


<noscript>
  <meta http-equiv="refresh" content="0;url=nojs-version.php">
</noscript>    

Edit: It is also mentioned by W3C as technique without confusing user
https://www.w3.org/TR/WCAG20-TECHS/H76.html

  • Related