javascripthtmldom-eventsonload-event

Add event handler for body.onload by Javascript within <body> part


We want to include a maps from Google Maps API in our document. The documentation tells to initialize the map with a function called by the onload() event of the body.

The ordinary way to call:

<body onload="initialize_map();">

This doesn't work out for us because we're using Template::Toolkit and the <body> tag is already included in our wrapper. In short: The <body> tag is already printed when our Javascript code starts running.

I tried something like this but it does only work for onclick, not onload. I guess that's because the Javascript code is beneath the <body> tag itself.

var body = document.getElementsByTagName("body")[0];

body.addEventListener("load", init(), false);

function init() {
        alert("it works!");
};

Any help how to fire up a Google Maps map appreciated!


Solution

  • As we were already using jQuery for a graphical eye-candy feature we ended up using this. A code like

    $(document).ready(function() {
        // any code goes here
        init();
    });
    

    did everything we wanted and cares about browser incompatibilities at its own.