1. la parola "frame" come pure "frames" e` riservata:" usandola come nome di una variabie puoi incorrere in comportamenti imprevedibili.
Mi era venuto il dubbio.. infatti l'ho cambiato.. ma niente...
non mi imposta ancora la onload. (se in un qualunque frame
scelgo un link di google non appare il messaggio)

2. tutti i frame definiti dentro un frameset fanno parte della stessa collezione, quindi se nella finestra top c'e` un frameset, tutti i suoi frame vengono indirizzati in uno dei seguenti modi:
top.NOMEFRAME
top.frames['nomeframe']
top.frames[N] // dove N va da 0 al max-1
Infatti così riesco ad accervi, ma solo per farmi stampare il
nome.. già se provo ad accedere al rispettivo document
mi da null (top.frames[0].document == null, anche con
top.sinistra.* mi da errore, come se non trovasse il frame
con tale nome, ma esiste!!!)

Se invece in una pagina dentro un frame c'e` un nuovo frameset, i frame di questo fanno parte di una collezione nuova, che dipende dalla collezione precedente:
top.NOMEFRAMEPRINC.NOMEFRAMESECOND.
(con le stesse opzioni di sintassi di cui sopra).
Come detto sopra, non riesco ad accedere al frame in se..
quindi neanche ai frame "figli".
Ad es, il seguente codice non mi da il numero dei sotto frame,
anche se la pag. contiene frame!!

function modificaOnload() {
var frs = document.getElementsByTagName('frame');
for (i = 0; i < frs.length; i++) {
var fr = frs[i];
name = fr.getAttribute('name');
alert("Opero su frames["+i+"] = "+name);
fr.onload = loaded;
var frs2 = fr.document.getElementsByTagName('frame');
if (frs2!=null) alert(frs2.length);
}
}

OR ORA MI SORGE UN DUBBIO : non dovrebbe esserci
differenza tra
.. = document.getElementsByTagName('frame');
e
.. = window.frames;


e quindi anche tra (visto che frames[] è un window)

.. = fr.document.getElementsByTagName('frame');
e
.. = fr.frames;


allora perche mi danno risultati diversi?!?!?