Foros del Web » Programando para Internet » Javascript »

Ayer me amanecí y no lo resuelvo

Estas en el tema de Ayer me amanecí y no lo resuelvo en el foro de Javascript en Foros del Web. Intento poner en mi blog un fondo aleatorio en la tabla del encabezado. Estoy rompiendome la cabeza con un código y siento que estoy muy ...
  #1 (permalink)  
Antiguo 07/08/2007, 13:08
 
Fecha de Ingreso: agosto-2007
Mensajes: 5
Antigüedad: 16 años, 8 meses
Puntos: 0
Ayer me amanecí y no lo resuelvo

Intento poner en mi blog un fondo aleatorio en la tabla del encabezado. Estoy rompiendome la cabeza con un código y siento que estoy muy cerca de lograrlo, pero NO encuentro solución.

Pongo esto en <head>

Código PHP:
<script type="text/javascript" language="javascript">
<!--
//numero de imagenes de fondo disponibles
var numImagenes 2
//nombre de las imagenes = prefijoNombre + numero de 1 a numImagenes + extension
var prefijoNombre 'http://arielcristian.wordpress.com/files/2007/08/cabecera-'
//extension de las imagenes
var extension '.jpg'

function EscribeBody() {
   var 
imagenes = new Array( numImagenes )
   for ( 
contador 1contador <= numImagenescontador++ )
      
imagenescontador ] = prefijoNombre contador extension

   
var aleatorio Math.round( (numImagenes 1) * Math.random() ) + 1

   document
.writeimagenesaleatorio ] )
}
//-->
</script> 
Ahora, este es el CSS que permite poner una imagen de fondo en la tabla que quiero:

Código PHP:
#header-wrapper {
    
margin0
    
width800px
    
background#036EB4 url(http://arielcristian.wordpress.com/files/2007/08/cabecera-1) no-repeat center top;  
    
height149px
    
color#FFF 

En "url()" he intentado poner mi código JS de todas las formas que se me ocurren:

Código PHP:
url(javascript:Escribe();)
url(javascript:(Escribe());)
url(javascript:Escribe)
url('javascript:'Escribe()';'
Y muchas más, he pasado de lo lógico hasta a lo fantasioso -pero valía la pena intentar- y no encuentro solución alguna. Sé que no soy un experto ni mucho menos, apuesto a que algunos se rien de mi problema. Solo espero puedan ayudarme los expertos habitantes de esta web que ya una vez hace muchos años me han salvado de un enredo php'ciano.

PD: Aunque nunca trate directamente con Cluster, es una pena ver que se ha retirado del foro. ¡Era un maestro!
  #2 (permalink)  
Antiguo 07/08/2007, 13:45
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
Re: Ayer me amanecí y no lo resuelvo

loading................

Y nunca te funcionará porque un CSS no puede interpretar Javascript.

Lo que puedes hacer es.

Código PHP:
function EscribeBody() {
   var 
imagenes = new Array( numImagenes )
   for ( 
contador 1contador <= numImagenescontador++ )
      
imagenescontador ] = prefijoNombre contador extension

   
var aleatorio Math.round( (numImagenes 1) * Math.random() ) + 1

   
return imagenesaleatorio ] ;

Código PHP:
window.onload=function()
{
  
document.body.style.background=" #036EB4 url("+EscribeBody()+") no-repeat center top";


connection closed.
__________________

Maborak Technologies
  #3 (permalink)  
Antiguo 07/08/2007, 14:02
 
Fecha de Ingreso: agosto-2007
Mensajes: 5
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: Ayer me amanecí y no lo resuelvo

No funciona ;(

Encontre esta página de Javascript en CSS:

http://www.quirksmode.org/css/javascript.html

Pero por más que busco y rebusco no hallo solución. He intentado de dos formas lo que me has propuesto.

Código PHP:
#header-wrapper {
    
margin0
    
width800px
<
script type="text/javascript" language="javascript">
<!--
window.onload=function()
{
  
document.body.style.background=" #036EB4 url("+EscribeBody()+") no-repeat center top";
}  
</script>
    height: 149px; 
    color: #FFF ;

Código PHP:
#header-wrapper {
    
margin0
    
width800px
window.onload=function()
{
  
document.body.style.background=" #036EB4 url("+EscribeBody()+") no-repeat center top";
}  
    
height149px
    
color#FFF ;

No resulta, pero muchas gracias, de veras.
  #4 (permalink)  
Antiguo 07/08/2007, 17:01
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Ayer me amanecí y no lo resuelvo

¿estás metiendo la etiqueta <script> entre las dos etiquetas <style>?

Eso no se puede hacer, mejor haz:
Código PHP:
<style type="text/css">
...
</
style>
<
script type="text/javascript">
...
</script> 
Y comprueba que la función EscribeBody() te devuelve un String con una url válida para la imágen que quieres colocar (con un alert() por ejemplo).
Si todo está bien al parecer, podrías probar a cambiar la propiedad background-image sólo:
document.body.style.backgroundImage = "url(...)";


Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #5 (permalink)  
Antiguo 07/08/2007, 18:06
 
Fecha de Ingreso: agosto-2007
Mensajes: 5
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: Ayer me amanecí y no lo resuelvo

EA!! GRACIAS, bueno aunque falta algo, ya es un paso =)

Código PHP:
<script type="text/javascript" language="javascript"
<!--
window.onload=function()
{
  
document.body.style.backgroundImage="url("+EscribeBody()+")";
}  
//--> 
</script> 
Eso es lo que he puesto (dentro de <head> claro) y cambia aleatoriamente la imagen de fondo de mi BODY. Ahora el punto es que yo no quiero que cambie el estilo del body, sino de una tabla que es mi encabezado. Este es su style:

Código PHP:
#header-wrapper {
    
margin0
    
width800px
    
background#036EB4 url(http://arielcristian.wordpress.com/files/2007/08/cabecera-2.jpg) no-repeat center top;  
    
height149px
    
color#FFF 

¿Como lo hago?

Gracias, Gracias
  #6 (permalink)  
Antiguo 07/08/2007, 18:24
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Ayer me amanecí y no lo resuelvo

Bueno, sería

Código PHP:
document.getElementById("header-wrapper").style.backgroundImage "url(...)"
Por cierto, es mejor que elimines el atributo language de la etiqueta <script>.

Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #7 (permalink)  
Antiguo 07/08/2007, 18:37
 
Fecha de Ingreso: agosto-2007
Mensajes: 5
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: Ayer me amanecí y no lo resuelvo

GRACIAS MIL!!

Es el resultado que he buscado =)

Ariel Cristian
http://arielcris.blogspot.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 00:04.