Newsgroup: it.comp.lang.javascript
Titolo: modificare attributo tag html

Ciao a tutti,
vorrei fare una pagina web con dentro un oggetto flash (un immagine 
zoomabile fatta con zoomify) e vorrei fare in modo che le dimensioni di 
questo oggetto si adattino alle dimensioni della viewport del browser 
dell'utente.
Riesco a ricavare le dimensioni della viewport ma poi non so come 
modificare il width dell'oggetto
<EMBED FlashVars="zoomifyImagePath=Jof_dal_bivacco" 
SRC="ZoomifyViewer.swf" MENU="false" 
PLUGINSPAGE="
http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash
" 
  WIDTH="1890" HEIGHT="1000" NAME="theMovie"></EMBED>
al posto di 1890 e 1000 vorrei mettere le dimensioni lette via 
javascript al caricamento della pagina.
Come si può fare?
grazie, ciao
Mauro



in tanti modi ... per esempio, se "embed" è l'unico (o il primo) nella 
pagina, document.getElementsByTagName("embed")[0].width="tuovalore"; //
attenzione a metterlo come stringa, e ad esplicitare l'unità di misura, 
quindi 1890px, non 1890.
Esiste anche setAttribute, è più standard ma mi sembra di ricordare che 
con qualche proprietà "standard" aveva qualche problema con vecchi 
browser; comunque:
 document.getElementsByTagName("embed")[0].setAttribute("width","1890px");

 quindi 1890px, non 1890.
Grazie per la prontissima risposta. Ho provato ma ottengo l'errore
Errore: document.getElementsByTagName("EMBED")[0] is undefined
Posto il codice completo dell'oggetto incorporato se può servire:
<OBJECT CLASSID="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" 
CODEBASE="
http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0
" 
WIDTH="1890" HEIGHT="1000" ID="theMovie">
<PARAM NAME="FlashVars" VALUE="zoomifyImagePath=Jof_dal_bivacco">
<PARAM NAME="MENU" VALUE="FALSE">
<PARAM NAME="SRC" VALUE="ZoomifyViewer.swf">
<EMBED FlashVars="zoomifyImagePath=Jof_dal_bivacco" 
SRC="ZoomifyViewer.swf" MENU="false" 
PLUGINSPAGE="
http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash
" 
  WIDTH="1890" HEIGHT="1000" ID="theMovie2"></EMBED>
</OBJECT>
questo si trova dentro a un div.
Nello script io ho scritto:
document.getElementsByTagName("EMBED")[0].width=viewportwidth+"px";
document.getElementsByTagName("EMBED")[0].height=viewportheight+"px";
document.getElementsByTagName("object")[0].width=viewportwidth+"px";
document.getElementsByTagName("object")[0].height=viewportheight+"px";
dove viewportwidth e viewportheight sono le dimensioni della viewport 
(che sono corrette, già verificato)
ciao, grazie
Mauro

 Posto il codice completo dell'oggetto incorporato se può servire:
[CUT]
L'errore è da qualche altra parte.
Ecco un esempio scritto al volo, vedrai che funziona perfettamente (il 
body lo ho copiato da quello che hai postato, e racchiuso in un div):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>
  <head>
  <meta http-equiv="content-type" content="text/html;
charset=windows-1250">
  <title>Test</title>
<script type="text/javascript">
function ingrandisci() {
	var obj=document.getElementsByTagName("embed")[0];
	alert(obj.width); //1890
	alert(obj.getAttribute("width")); //1890
	obj.width="5000px";
	alert(obj.width); //5000
	alert(obj.getAttribute("width")); //5000
}
</script>
 </head>
<body>
<div>
<OBJECT CLASSID="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
CODEBASE="
http://download.macromedia.com/pub/shockwave/cabs/flash/
swflash.cab#version=6,0,40,0"
WIDTH="1890" HEIGHT="1000" ID="theMovie"> <PARAM NAME="FlashVars"
VALUE="zoomifyImagePath=Jof_dal_bivacco"> <PARAM NAME="MENU"
VALUE="FALSE">
<PARAM NAME="SRC" VALUE="ZoomifyViewer.swf"> <EMBED
FlashVars="zoomifyImagePath=Jof_dal_bivacco" SRC="ZoomifyViewer.swf"
MENU="false"
PLUGINSPAGE="
http://www.macromedia.com/shockwave/download/index.cgi
?
P1_Prod_Version=ShockwaveFlash"
  WIDTH="1890" HEIGHT="1000" ID="theMovie2"></EMBED>
</OBJECT>
</div>
<div><button onclick="ingrandisci()">Ingrandisci</button></div>
</body>
</html>

 L'errore è da qualche altra parte.
Trovato, io avevo messo lo script come te nel tag head, ma in quel 
momento l'oggetto embed non esiste ancora.
Spostato lo script alla fine del body funziona tutto !!!
grazie mille !
ciao
Mauro

 Spostato lo script alla fine del body funziona tutto !!!
Puoi lasciarlo nell'head, dentro una function, e metterlo onload:
 window.onload=function() {
	tuafunzione();
}


Perche' non scrivi direttamente
window.onload=tuafunzione()
??
ciao
Mauro

 window.onload=tuafunzione()
così è errato ...
 window.onload=tuafunzione; //senza parentesi
Di abitudine la richiamo all'interno, perché spesso ho più di una function 
da eseguire, oppure perché devo passare parametri. In questo caso, se non 
ci sono parametri, è uguale.

 ci sono parametri, è uguale.
Capito, grazie!
ciao
Mauro

 Uhm .... mi sa che mi manca qualcosa, questo codice dove lo scrivi?
dove vuoi (nel tag script subito dopo la function, per esempio), viene 
eseguito al termine del caricamento della pagina.

 eseguito al termine del caricamento della pagina.
grazie mille, gentilissimo !!!
ciao
Mauro