Is there a rails equivalent of <body onload="do_stuff()">

Hi,

I want to call a javascript function after my page has loaded. Currently I am using: <body onload="do_stuff()"> Is there a neater / tidier way to do this using any rails specific commands?

I found this:

document.observe('dom:loaded', function() { $('state_field').hide(); $('person_country_id').observe('change', countrySelected); });

which is part of a tutorial for creating dynamic drop down menus, but when I, for example, try:

document.observe('dom:loaded', function() { alert('hello'); });

this has no effect, rather it is output as html, as though I had witten <p>document.observe('dom:loaded', function() {alert('hello');});</p>

Grateful for any help.

Sorry, I forgot the <script> tags. Now eveything works. Forget I spoke :slight_smile:

Excellent! Now take the JS out of the HTML and put it in an external file.

Cool, that works. Thanks a lot.

You might want to have a look at Low Pro

http://www.danwebb.net/2006/9/3/low-pro-unobtrusive-scripting-for-prototype

It was built for prototype, but there's a version for use with jquery as well http://www.danwebb.net/2008/2/3/how-to-use-low-pro-for-jquery

Although I haven't used that.