Foros del Web » Programando para Internet » Javascript »

Acceder a un variable javascript desde un embed de html

Estas en el tema de Acceder a un variable javascript desde un embed de html en el foro de Javascript en Foros del Web. Buenas. Resulta que estoy haciendo un bbcode de phpbb3 de youtube con parámetros, de tal forma que además de introducir la url se pueden meter ...
  #1 (permalink)  
Antiguo 05/08/2009, 17:11
Avatar de rantamplan  
Fecha de Ingreso: agosto-2006
Mensajes: 32
Antigüedad: 17 años, 8 meses
Puntos: 0
Acceder a un variable javascript desde un embed de html

Buenas.

Resulta que estoy haciendo un bbcode de phpbb3 de youtube con parámetros, de tal forma que además de introducir la url se pueden meter el ancho y el alto.

Hasta ahí bien porque he conseguido que funcione.

Pero ahora lo que quiero es que si no se introducen los parámetros de altura y anchura (que sean = null) pues que ponga unos por defecto.

El código del uso del bbcode es:

Código:
[youtubeparam={NUMBER1}:{NUMBER2}]htp://{SIMPLETEXT1}.youtube.com/watch?v={SIMPLETEXT2}[/youtubeparam]
Siendo NUMBER1 el ancho (width) y NUMBER2 el alto (height).

Y este es el código del html que sustituye al bbcode:

Código:
<script type="text/javascript">
var ancho = 660;
var alto = 525;
if {NUMBER1} != null{
   ancho = {NUMBER1};
}

if {NUMBER2} != null{
   alto = {NUMBER2};
}
</script>

<object width= ancho height=alto>
<param name="movie" value="htp://{SIMPLETEXT1}.youtube.com/v/{SIMPLETEXT2}&autoplay=0&fs=1"></param><param name="wmode" value="transparent"></param>
<param name="allowFullScreen" value="true"></param>
<embed src="htp://{SIMPLETEXT1}.youtube.com/v/{SIMPLETEXT2}&autoplay=0&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" wmode="transparent" width=ancho height=alto></embed></object>
No se si los "ifs" estarán bien (sobre todo lo de null), pero vamos que he probado scripts más sencillos como:


Código:
<script type="text/javascript">
var ancho = {NUMBER1};
document.write(ancho);
</script>
Y me escribía el valor de {NUMBER1} pero luego no se pasarle ancho al embed.

Alguien sabe como puedo hacer esto?.

Un saludo y gracias de antemano.

P.D.- Lo de htp en vez de http en las direcciones es porque como tengo menos de 30 mensajes no me deja poner urls.
  #2 (permalink)  
Antiguo 07/08/2009, 06:05
Avatar de sweetlydark  
Fecha de Ingreso: septiembre-2008
Mensajes: 391
Antigüedad: 15 años, 7 meses
Puntos: 10
Respuesta: Acceder a un variable javascript desde un embed de html

No entiendo lo que estas intentando hacer y aunque no he usado a phpbb mucho pero según tengo entendido el bbcode son mas que unos guarda espacios que usan los foros para permitir formatear texto, sin permitir que los usuarios usen html directamente (ya que esto les exponen a un sin numero de problemas).

Por lo general se usan los [] pero parece que estas usando {} para demarcar el código que va ser reemplazado antes de mostrar la pagina. Si es asi necesitas cambiar los if que si están mal:
Código:
if ({NUMBER1} != null){
   ancho = {NUMBER1};
}

if ({NUMBER2} != null){
   alto = {NUMBER2};
}
Ahora asumo que {NUMBER1}, {NUMBER2} van a ser reemplazado por un variable (por eso estas verificando si están nulos) y que estos esta definidos en otro parte de tu código js.

Lo otro que falta es aclarar que el HTML no es un idioma dinámico y no puedes pasar variable de un idioma como js a ella directamente por lo tanto:

tu html entiende width=ancho height=alto como width=ancho height=alto y no width=660 height=525 (si number1 y 2 son nulos).

Puedes alterar estos valores si colocas un id al objecto y utilizas document.getElementById("idquecolocaste").height o width pero este debe ser llamado despues que creas el objecto.

Espero que algo de esto te sea útil.
__________________
Por fin vuelvo a tener internet!
http://www.anidandoetiquetas.com/
  #3 (permalink)  
Antiguo 07/08/2009, 16:08
Avatar de rantamplan  
Fecha de Ingreso: agosto-2006
Mensajes: 32
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Acceder a un variable javascript desde un embed de html

Cita:
Iniciado por sweetlydark Ver Mensaje
No entiendo lo que estas intentando hacer y aunque no he usado a phpbb mucho pero según tengo entendido el bbcode son mas que unos guarda espacios que usan los foros para permitir formatear texto, sin permitir que los usuarios usen html directamente (ya que esto les exponen a un sin numero de problemas).

Por lo general se usan los [] pero parece que estas usando {} para demarcar el código que va ser reemplazado antes de mostrar la pagina. Si es asi necesitas cambiar los if que si están mal:
Código:
if ({NUMBER1} != null){
   ancho = {NUMBER1};
}

if ({NUMBER2} != null){
   alto = {NUMBER2};
}
Ahora asumo que {NUMBER1}, {NUMBER2} van a ser reemplazado por un variable (por eso estas verificando si están nulos) y que estos esta definidos en otro parte de tu código js.

Lo otro que falta es aclarar que el HTML no es un idioma dinámico y no puedes pasar variable de un idioma como js a ella directamente por lo tanto:

tu html entiende width=ancho height=alto como width=ancho height=alto y no width=660 height=525 (si number1 y 2 son nulos).

Puedes alterar estos valores si colocas un id al objecto y utilizas document.getElementById("idquecolocaste").height o width pero este debe ser llamado despues que creas el objecto.

Espero que algo de esto te sea útil.
Pues simplificando lo que quiero hacer es poder acceder a esos parámetros {NUMBER1} y {NUMBER2} que son como las variables que luego se utiliza para rellenar el código del html.

Por ejemplo si quieres incluir un vídeo de youtube el usuario del foro escribirá:

Código:
[youtub]htp://ww.youtube.com/watch?v=KoP6CnqKhtI[/youtub]
Entonces cuando le da a enviar el mensaje, detecta un trozo de ese texto y le da por ejemplo el nombre {TEXT1} (esas cosas se definen al crear el bbcode en la administración del foro).

Y luego cuando se visualiza el post se sustituye toda esa etiqueta por algo tipo:

Código:
<object width="660" height="525"> 
<param name="movie" value="htp://ww.youtube.com/v/{TEXT1}></param> <embed src="htp://ww.youtube.com/v/{TEXT1} type="application/x-shockwave-flash" width=ancho height=alto></embed></object>
Y ya con ese object se carga el vídeo de youtube. Entonces lo que yo tengo es un bbcode que permite darle tamaño al vídeo de youtube (que es lo de {NUMBER1} y lo de {NUMBER1}) para que los propios usuarios puedan decidir si lo quieren poner más grande o más pequeño.

Pero como siempre hay gente que no pilla bien las cosas, quiero hacer que si no se introduce el tamaño que ponga unos valores por defecto. Para ello tengo que interceptar mediante un script los valores de {NUMBER1} y {NUMBER2} y modificarlos. Pero como eso no funciona, porque he probado a hacer {NUMBER1} = "1000"; y no lo coge, no se modifica.

Así que pensé que lo mejor sería interceptar esos valores con javascript, meterlos en unas variables "ancho" y "alto" y pasárselas al html. Pero bueno ya veo que según me dices no es algo que se pueda hacer xDD.

Yo es que vengo de programación en c++ y java y se puede hacer todo lo que quieras y claro xDD, pienso que se puede aquí también.

Pero bueno he estado mirando y con una función php externa que reciba esos datos y (he visto un caso que lo hacen) devuelva ya el código html con los valores del tamaño puestos.

En fin... a ver si lo consigo.

Un saludo y gracias.
  #4 (permalink)  
Antiguo 08/08/2009, 13:40
Avatar de sweetlydark  
Fecha de Ingreso: septiembre-2008
Mensajes: 391
Antigüedad: 15 años, 7 meses
Puntos: 10
Respuesta: Acceder a un variable javascript desde un embed de html

Creo que para hacer lo que quieres necesitas alterar el código base del etiqueta bbcode (es uno ya creado que quieres alterar verdad?). En si vas a tener que modificar el código php que crea el bbcode. Ya que no puedes usar {number1} en js porque los {} son solo para demarcar área de tu función y vuelve a js loco verlo así.
__________________
Por fin vuelvo a tener internet!
http://www.anidandoetiquetas.com/
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:15.