I don't think that's possible without a timer.

But you could try this:
Code:
var win = null;

function setOnLoad()
{
  if(!win)
    return;
  if(win && !win.document.body) {
    setTimeout(100, setOnLoad);
    return;
  }

  win.document.body.onload = pageLoaded;
}

function createWin()
{
  win = window.open(blabla);
  setOnLoad();
}
Not sure if it works though.