1

i have this javascript function:

print <<"EOT";
<script type="text/javascript">
 function alertSize() {
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
    window.alert( 'Width = ' + myWidth );
    window.alert( 'Height = ' + myHeight );
}
</script>
EOT
print "<body onload='alertSize()'>";
print "</body>";

my $windowHeight = $q->param('myHeight');
my $windowWidth = $q->param('windowwidth');
print "<$windowHeight><$windowWidth>";

How to pass the values of and from javascript function to my Perl variables ?

1

1 Answer 1

6

Your Perl is running on the server. It outputs some text which is sent to the client (the browser).

The browser then interprets that text and HTML and JavaScript.

You can't pass data back to Perl without making a new HTTP request.

Your options include:

  • Finish the processing with JavaScript instead of trying to pass it back to Perl
  • Use Ajax to make a new HTTP request
  • Set location.href to load a new page with the data passed in the query string
  • Find a way to achieve your (unspecified) goal without using your current logic (e.g. you could use CSS media queries to style a page differently based on browser dimensions).
Sign up to request clarification or add additional context in comments.

2 Comments

i will use that values to sendit to the css file to calculate the <div> height
Make use of percentages or media queries instead.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.