Ver Mensaje Individual
  #5 (permalink)  
Antiguo 20/02/2013, 12:38
Profesor_Lambetain
 
Fecha de Ingreso: septiembre-2010
Mensajes: 67
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: Gestionar etiqueta <embed> con JS. <embed> genera campo de formulario no d

Cita:
Iniciado por emprear Ver Mensaje
Si, bastante curioso eso del embed, no lo entendía hasta que probé esto
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. </head>
  7. <form action="#">
  8. <table border="1">
  9. <tr>
  10. <td>
  11. <input name="boton1" type="button" value="x1"/>
  12. <input name="boton2" type="button" value="x2"/>
  13. </td>
  14. </tr>
  15. <tr>  
  16. <td>
  17. <embed src="avcamelias.mp3" autostart="true" loop="true" width="280" height="42" />
  18. </td>
  19. </tr>
  20. <tr>
  21. <td>
  22. <input type="text" size="2" id="anioselec" name="audioselect" value="x3" />
  23. <input name="boton3" type="button" value="x4" onclick="calculo();" />
  24. </td>
  25. </tr>
  26. <tr>
  27. <td> ttttt </td>
  28. <td> jjjj </td>
  29. </tr>
  30. <input type="hidden" name="m" value="x5" />
  31. <input type="hidden" name="n" value="x6" />
  32. <input type="hidden" name="p" value="x7" />
  33. <input type="hidden" name="senial" value="x8" />
  34. </form>
  35.  
  36.  
  37. <script type="text/javascript">
  38. //<![CDATA[
  39. window.onload = function(){
  40. var a= document.forms[0];
  41. for (var i=0;i<a.length;i++)
  42. {
  43.     if(a[i].tagName == 'INPUT'){
  44. alert(a[i].tagName + "-" + a[i].value +  "\n");
  45. }
  46. }
  47. }
  48. //]]>
  49.  
  50. </body>
  51. </html>

Es decir tuve que corregirlo verificando el tagName. Hecho de esa manera en todos los browsers da 8.
Por lo de la conversión, con esta herramienta desde la linea de comandos es sencillo
[url]http://v2v.cc/~j/ffmpeg2theora/[/url]

Saludos
Muchas gracias emprear. Ya estudiaré tu código (visto así a vuelapluma no lo entiendo), que creo es más sencillo que lo que acabo de hacer, que es lo siguiente:

El formulario del código que pasé antes lo escindí en 3 formularios: uno encierra los 2 primeros campos, el otro encierra el tag <embed> pero sin declarar yo ningún campo, el tercero encierra el resto de inputs (6 campos). Total que un alert(document.forms[i].length); 0<= i <= 2 me arroja lo esperado: 2, 1 y 6 campos. Suman 9 campos cuando yo he declarado en html 8 campos: evidentemente <embed> genera automáticamente un campo. Ver código abajo.

Bueno, con esta modificación, el código funciona bien en IE9, Chrome y FF (este último me hace descargar el plugin QuickTime para reproducir sonido, pero ese es otro tema).

Ahora voy a ponerme con tu sugerencia de uso de <audio>, a ver si puedo hacer que el usuario pueda elegir el file de sonido.

Gracias mil nuevamente.

Código HTML:
<body ONLOAD="calculo();">
…..
<table>
<tr>
<td> [B]<FORM ID="1">[/B]
<[B]INPUT[/B] NAME="boton1" TYPE="button" … />
<[B]INPUT[/B] NAME="boton2" TYPE="button" … />
[B]</FORM>[/B]
</td></tr><tr><td>
[B]<FORM ID="2">[/B]
<embed src="AvCamelias.mp3" autostart="true" loop="true" width="280" height="42"></embed>
[B]</FORM>[/B]
</td>
</tr>
<tr>
<td…>
[B]<FORM ID="3">[/B]
<[B]INPUT[/B] SIZE="2" ID="Anioselec" VALUE="" />
<[B]INPUT[/B] NAME="boton3" TYPE="button" VALUE="CALCULAR" ONCLICK="calculo();" />
</td></tr><tr> 
<td> ttttt </td>
<[B]INPUT[/B] TYPE="hidden" NAME="m" VALUE="23" />
<[B]INPUT[/B] TYPE="hidden" NAME="n" VALUE="34" />
<[B]INPUT[/B] TYPE="hidden" NAME="p" VALUE="14" />
<[B]INPUT[/B] TYPE="hidden" NAME="senial" VALUE="0" />
[B]</FORM>[/B]
<td> jjjj </td> 
….
</table>
</body>