http://qs1969.pair.com?node_id=213651


in reply to Inserting javascript into perl script

Another way to approach it if you're using CGI.pm is like this...

$query = new CGI; print $query->header; $JSCRIPT=<<END; // Ask a silly question function riddle_me_this() { var r = prompt("What walks on four legs in the morning, " + "two legs in the afternoon, " + "and three legs in the evening?"); response(r); } // Get a silly answer function response(answer) { if (answer == "man") alert("Right you are!"); else alert("Wrong! Guess again."); } END print $query->start_html(-title=>'The Riddle of the Sphinx', -script=>$JSCRIPT);

...which I lifted straight from perldoc CGI.

Replies are listed 'Best First'.
Re: Re: Inserting javascript into perl script
by dingus (Friar) on Nov 18, 2002 at 10:30 UTC
    Another way to approach it if you're using CGI.pm is like this...

    SNIP

    ...which I lifted straight from perldoc CGI.

    And little way down is the trick for when you have a lot of js which doesn't change between page displays, that is storing the js in a separate file and including it in a <SCRIPT SRC=...> tag.

    print $q->start_html(-title=>'The Riddle of the Sphinx', -script=>{-language=>'JAVASCRIPT', -src=>'/javascript/sphinx.js'} );
    This is a GOOD thing for a number of reasons including the fact that it forces you to separate client and server which can be good for debugging weird stuff.

    Aristotle posted an excellent comment 213336 about the problems of combined js/perl which you should bear in mind. This doesn't menan don't do it but you do need to withe rhave full control of your clients or a way to degrade gracefully if they don't support javascript.

    Dingus


    Enter any 47-digit prime number to continue.