http://qs321.pair.com?node_id=64137
Category: CGI Programming
Author/Contact Info Andrew Kenton Mitchell Andrew@AndrewKMitchell.com http://www.AndrewKMitchell.com
Description: I had a situation where I needed to know if my visitor's browers supported JavaScript. Here is the code I used.
#!/usr/bin/perl

#Hash Array containg list of pages to display depending on test result
+s.
%resultURLs = (
                'PASS', 'http://www.mscorp.org/cgi-bin/invo.pl',
                'FAIL', 'http://www.mscorp.org/js/invorder.pl/nojs.htm
+l'
               );
#URL of this script.
$scriptURL = "/cgi-bin/invorder_djs.pl";

#Read hidden form results and decide what to do.
require "lib/cgi-lib.pl";  #You can use CGI.pm if you like.
&ReadParse;
if (!$in{'jstest'}){
&runJSTest;
}
else{
$result = uc $in{'jstest'};
$url = $resultURLs{$result};
print "Location: $url\n\n";
exit;
}
#Print HTML output that handles the testing.
sub runJSTest{
print <<END_OF_HTML;
<html>
<head>
<title>CHECKING YOUR SYSTEM FOR INSTALLED COMPONENTS...</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1
+">
#Redirect to error page if JavaScript found within 5 seconds.
<meta http-equiv="refresh" content="5;URL=$scriptURL?jstest=fail">
</head>

<body bgcolor="#FFFFFF" onload="testJS()">
<script language="JavaScript">
<!--
#If JavaScript is enabled this functions is run thereby returning a va
+lue of true.
function testJS() {
          document.jstestform.submit();
}

//-->
</script>
<table width="7%" border="0" cellspacing="0" cellpadding="0" align="ce
+nter">
  <tr>
    <td nowrap align="center"> 
      <p><b><font face="Arial">PLEASE&nbsp;WAIT<b><img src="/images/pe
+riod_ani.gif" width="18" height="12"></b></font></b></p>
      <p><font face="Arial"><b>CHECKING&nbsp;YOUR&nbsp;SYSTEM&nbsp;FOR
+&nbsp;INSTALLED&nbsp;COMPONENTS<img src="/images/period_ani.gif" widt
+h="18" height="12"></b></font></p>
      <p><b><tt><font face="Arial">IF&nbsp;THIS PAGE&nbsp;DOES&nbsp;NO
+T&nbsp;CHANGE&nbsp;WITHIN&nbsp;10&nbsp;SECONDS,&nbsp;PLEASE&nbsp;<a h
+ref="$scriptURL?jstest=fail">CLICK&nbsp;HERE</a>.</font></tt></b></p>
    </td>
  </tr>
</table>
#Hidden form that returns the results, if JavaScript is enabled.
<form name="jstestform" method="post" action="$scriptURL">
  <input type="hidden" name="jstest" value="pass">
</form>
</body>
</html>
END_OF_HTML
exit;
}

2001-03-13 Edit by Corion : Fixed formatting

2001-03-13 Edit by akm2 : Enhanced code readibility