# $Id$ # JavaScript detection scriptlet Perl template. # Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; exactly version 2 of June 1991 is required # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA package My::HaveJS; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; use strict; use warnings; use My::Web; our $HTML_TEST="download"; sub handler { my $W=My::Web->init( "header_only"=>1, # Do not: text/javascript # as it does not look as registered, at least according to: MIME::Types $VERSION 1.15 # "application/javascript" so far standardized till 2005-12-08 by: # http://www.ietf.org/internet-drafts/draft-hoehrmann-script-types-03.txt "content_type"=>"application/javascript", ); My::Web->heading(); # Prevent redirection of some top (referring) foreign webpage as it # may not pass "have_js=1" to us anyway. (for example Google cache) print "" .'if (0'."\n" ."\t\t".'|| window.location.hostname=="'.$W->{"web_hostname"}.'" && window.location.port== 80'."\n" ."\t\t".'|| window.location.hostname=="'.'localhost' .'" && window.location.port==7680)'."\n"; print <<'HERE'; { var searchN=window.location.search; if (searchN=="" || searchN=="?") searchN="?"; else searchN+="&"; searchN+="have_js=1"; window.location.href =window.location.protocol+"//" +window.location.hostname +(window.location.port==80 ? "" : ":"+window.location.port) +window.location.pathname +window.location.hash +searchN; } HERE exit; } 1;