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