Newsgroup: it.comp.lang.javascript
Titolo: [HELP!] accedere ad oggetti inseriti in layer

Salve a tutti, mi chiamo Ivan Colombo ed ho un problema urgente: no
riesco ad accedere alle proprietą degli oggetti che vengono inseriti nei
layer via javascript:
esempio:
...
 <EMBED NAME="ivan" SRC="sample.mov"  width="263" height="222"
border="0"  border="0">
...
Se chiamassi la funzione:
document.write(document.embeds.length);
il risultato sarebbe 1, ed č giusto!.
Ora se facessi:
..
<div id="video02" style="position:absolute; left:5px; top:101px;
width:304px; height:213px; z-index:107; background-color: #333333;
layer-background-color: #333333; border: 1px none #000000; visibility:
hidden">
 <EMBED NAME="videopanelOrdini" SRC="sample.mov"  width="263"
height="222" border="0"  border="0">
</div>
ma:
document.write(document.embeds.length);
mi restituisce 0!!!! COME MAI? se provo ad accedere a
document.video02.embeds mi viene detto che l'oggetto no ha proprietą!.
Morale, se inserisco oggetti all'interno di layer come faccio ad
accedere alle loro proprietą e/o metodi da altri layer via javascript?
Prego rispondermi via email: 
iv...@promo.it

in N ogni layer ha le sue proprietà che esulano da quelle di
window...
quindi per riferirti ad oggetti che sono contenuti in un
layer devi usare la sintassi:
window.document.layers['nome layers'].document.......
anche per
window.document.layers['nome layers'].document.write();
--
Bye
Ro<*¿*>berto

Ciao, sono Ivan Colombo;
ho letto la tua email in cui mi spiegavi come accedere ad un oggetto
inserito in un layer, però faccio un piccolo errore che non riesco ad
identificare, potresti aiutarmi?
Per esempio questa è una pagina html che contiene un layer di nome
'video01' (nascosto) contenente a sua volta un filmato, io vorrei, via
javascript, vedere stampato a video il nome di quel filmato.
//***********************
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <TITLE>Untitled</TITLE>
</HEAD>
<BODY>
<div id="video01" style="position:absolute; left:5px; top:101px;
width:304px; height:213px; z-index:107; background-color: #333333;
layer-background-color: #333333; border: 1px none #000000; visibility:
hidden">
 <EMBED NAME="film01" SRC="sample.mov"  width="263" height="222"
border="0"  border="0">
</div>
<script language="JavaScript">
<!--
function MM_showHideLayers() { //v2.0
  var i, visStr, args, theObj;
  args = MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) { //with arg triples
(objNS,objIE,visStr)
    visStr   = args[i+2];
    if (navigator.appName == 'Netscape' && document.layers != null) {
      theObj = eval(args[i]);
   if (theObj) theObj.visibility = visStr;
    }
 else if (document.all != null) { //IE
      if (visStr == 'show') visStr = 'visible'; //convert vals
      if (visStr == 'hide') visStr = 'hidden';
      theObj = eval(args[i+1]);
      if (theObj) theObj.style.visibility = visStr;
    }
  }
}
function view(){
var args;
args = view.arguments;
 if (args[0]=='02') {
MM_showHideLayers('document.layers[\'video01\']','document.all[\'video01\']','hide','document.layers[\'video02\']','document.all[\'video02\']','show');
    }
 else {
MM_showHideLayers('document.layers[\'video02\']','document.all[\'video02\']','hide','document.layers[\'video01\']','document.all[\'video01\']','show');
    // document.write(document.layers['video'+args[0]].embeds[0].name)
 }
}
//view('01');
var obj;
obj=window.document.layers['video01'].document.embeds['film01'];
document.write('name film:'+
obj.name
);
//-->
</script>
</BODY>
</HTML>
//***********************
L'errore è il seguente:
JavaScript Error: 
http://gabriele/ares/prova2.htm
, line 49:
obj has no properties.
PS. in realtà il mio scopo finale sarebbe quello di riuscire ad eseguire
il play,stop e pause del filmato posto nel layer sempre via javascript,
tu avresti qualche suggerimento?


Sempre un array, con proprietà diverse!
