JavaScript::DebugConsole - Perl extension to generate JavaScript popups with custom text and typical web development useful informations
use JavaScript::DebugConsole; my $jdc = new JavaScript::DebugConsole; $jdc->add('Some', 'text'); print $jdc->debugConsole();
I packaged some my old and simple functions inside a Perl module (I was tired to do cut&paste each time :-) ) to generate the necessary JavaScript code in order to open a popup window with custom text and typical web development useful infos (like form params, environment variables, HTTP headers and so on).
In order to install and use this package you will need Perl version 5.005 or higher.
Installation as usual:
% perl Makefile.PL % make % make test % su Password: ******* % make install
No thirdy-part modules are required.
new( %args )
It's possible to create a new JavaScript::DebugConsole by invoking the new method. Parameters are passed as hash array:
JavaScript::DebugConsole
new
debug
Enable CGI form parameters and environment prints. Default value is 1.
add( 'Some', 'Text', [...] )
Add text to be rendered with JavaScript writeln calls.
writeln
debugConsole(%args)
Returns JavaScript code in order to open popup with custom text. Parameters are passed as hash array:
content
Allows to set the content which will be render by Javascript document.writeln statement. The parameter isn't mandatory. It overrides text previously added with calls to add method.
document.writeln
add
title
Popup title. Default vaule is POPUPConsole.
auto_open
Appends to JavaScript generated code, the necessary call in order to open popup automatically when page is loaded. Default value is 1.
1
form
Reference to the form data. This can either be a hash reference, or a CGI.pm-like object. In particular, the object must have a param() method that works like the one in CGI.pm does. CGI::Simple and Apache::Request objects are known to work.
env
Hash reference to environment variables. Default is %ENV.
%ENV
id
Unique identifier in order to use it to name JavaScript function that creates popup. This allow more that one popup calls in same page without conflicts. Default is $$ (process PID).
$$
popup_options
Popup options. Default value is:
height=250,width=450,scrollbars=1,resizable=1,dependent,screenX=250,screenY=200,top=200,left=250.
height=250,width=450,scrollbars=1,resizable=1,dependent,screenX=250,screenY=200,top=200,left=250
See the JavaScript reference manual for more info about window.open method.
window.open
pre
Print popup content inside <PRE> </PRE> HTML tag. Default values is 0.
Enable CGI form parameters and environment prints. Ovverride debug object property value only for method invocation.
The method returns the generated JavaScript code.
During initial development, Sam Vilain asked me to include also a Template::Plugin::JS::DebugConsole plugin in order to use this class in Template Toolkit environment.
Since the wrapper wouldn't have added nothing of special, I used successfully Template::Plugin::Class plugin, by avoiding to write e new one at the cost of one line only of additional code:
Template::Plugin::Class
[% USE c = Class('JavaScript::DebugConsole') %] [% jdc = c.new %] [% jdc.debugConsole( content => "Popup text", title => "Debug title", auto_open => 0 ) %] <p>Click <a href="[% jdc.link %]">here</a> to open the console!</p>
Following code use CGI plugin in order to print also CGI form params:
[% USE q = CGI %] [% USE c = Class('JavaScript::DebugConsole') %] [% jdc = c.new %] [% jdc.debugConsole( content => "Popup text", title => "Debug title", auto_open => 1, form => q ) %]
#!/usr/local/bin/perl use JavaScript::DebugConsole; use CGI qw/:standard/; my $q = new CGI; print header; # create new object my $jdc = new JavaScript::DebugConsole; print $jdc->debugConsole( content => 'My debug infos', title => 'Debug Test', auto_open => 0, form => $q ); print '<a href="' . $jdc->link . '">Open the console!</A>';
Please submit bugs to CPAN RT system at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=JavaScript-DebugConsole or by email at bug-javascript-debugconsole@rt.cpan.org
Patches are welcome and I'll update the module if any problems will be found.
Version 0.01
perl
Enrico Sorcinelli, <enrico at sorcinelli.it>
Copyright (C) 2004 by Enrico Sorcinelli
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.1 or, at your option, any later version of Perl 5 you may have available.
1 POD Error
The following errors were encountered while parsing the POD:
You forgot a '=back' before '=head1'
To install JavaScript::DebugConsole, copy and paste the appropriate command in to your terminal.
cpanm
cpanm JavaScript::DebugConsole
CPAN shell
perl -MCPAN -e shell install JavaScript::DebugConsole
For more information on module installation, please visit the detailed CPAN module installation guide.