Foros del Web » Programando para Internet » Javascript »

Problema en IExplorer

Estas en el tema de Problema en IExplorer en el foro de Javascript en Foros del Web. Tengo el siguiente trozo de codigo en mi web, que funciona perfectamente en Opera, Chrome y Mozilla; pero en IExplorer no funcionan los trozos de ...
  #1 (permalink)  
Antiguo 12/12/2011, 08:59
 
Fecha de Ingreso: junio-2010
Ubicación: Huelva
Mensajes: 24
Antigüedad: 13 años, 10 meses
Puntos: 0
Exclamación Problema en IExplorer

Tengo el siguiente trozo de codigo en mi web, que funciona perfectamente en Opera, Chrome y Mozilla; pero en IExplorer no funcionan los trozos de script.

Código HTML:
<html>
<head></head>
<body>
<script>document.write('<div id="fondo" style="background-size:'+$ancho+'px; height:1100px;">');</script>
    	<script>document.write('<div id="cabecera" style="background-size:'+$ancho+'px; height:'+$altoca+'px;">');</script>
            	<script>document.write('<div id="menu" style="left:'+$izq+'px; top:'+$topme+'px">');</script>
                	Aqui tengo un menu
            	</div>
        </div>
        
       	<script>document.write('<div id="sbmenu" style="top:'+$altoca+'px;">');</script>
              	Aqui tengo diferentes submenus     
       	</div>
       
       	<script>document.write('<div id="cesta" style="left:'+$der+'px; top: '+$altoca+'px;">');</script>
        	Aqui tengo una cesta de la compra
        </div>       
        
       	<script>document.write('<div id="buscador" style="top:'+$topbus+'px;">');</script>
       		Aqui tengo un Buscador
       	</div>
       	<script>document.write('<div id="contenido" style="left:'+$cencon+'px; top: '+$botcon+'px;">');</script>
       	</div>
    		</div>

	</body>
</html> 
No creo que este mal puesto que funciona en casi todos los navegadores, ¿hay alguna forma de hacer funcionar esos trozos de codigo? Ya tengo la web terminada y me e dado cuenta de este fallo ahora y es como e conseguido adecuarla a todas las resoluciones y cambiar eso ahora me llevaria mucho trabajo. Espero que puedan ayudarme.

Gracias por molestaros en leer mi problema.
  #2 (permalink)  
Antiguo 12/12/2011, 10:09
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Problema en IExplorer

no entiendo para que usas tantos bloques script si tu objetivo es generar HTML, además variables del tipo $ancho son típicas de PHP o lenguajes del servidor, por lo cual no es necesario JS para embeberlas al HTML, en dado caso con PHP sería así:

<?php echo $ancho; ?>
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 12/12/2011, 12:07
 
Fecha de Ingreso: junio-2010
Ubicación: Huelva
Mensajes: 24
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Problema en IExplorer

Uso variables javascript porque en ella almaceno valores que dependen del alto y ancho de la resolucion del equipo y del navegador con
Código Javascript:
Ver original
  1. screen.width;
  2. screen.availHeight;
etc.
  #4 (permalink)  
Antiguo 12/12/2011, 12:47
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Problema en IExplorer

ok, te entiendo, pero Javascript no admite variables con $.

además cuando embebes scripts directo en HTML todavía no hay DOM cargado, por lo cual te resultará dificil utilizar dichas propiedades, lo que puedes hacer es una función y la llamas desde el evento onload del body, o buscas unas de esas funciones que detectan el DOM cargado, como las que tienen FW como jQuery.

otro punto es verificar si dichas propiedades son compatibles con todos los navegadores, por lo que tendrás que hacer comparaciones según la versión y utilizar las funciones según dichas versiones o diferentes navegadores
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #5 (permalink)  
Antiguo 12/12/2011, 13:29
 
Fecha de Ingreso: junio-2010
Ubicación: Huelva
Mensajes: 24
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Problema en IExplorer

Antes que nada agradecer que estes atendiendo mis dudas.

No creo que sea ninguno de los problemas que me dijiste anteriormente puesto que funciona en el resto de navegadores, aun así, he seguido tus consejos:
  1. Le he quitado el '$' a las variables.
  2. He metido las variables en la funcion: $(document).ready(function(){Variables})
  3. He comprovado que las llamadas screen.width y screen.availHeight funcionen en IExplorer.

Y el problema persiste.
Al sustituir, por ejemplo, en este script la variable ancho por un numero si me lo coje.
Código Javascript:
Ver original
  1. <script>document.write('<div id="fondo" style="background-size:'+ancho+'px; height:1100px;">');</script>

Edito porque sin querer al comprobar si llegaba bien la variable lo comprobé con mozilla en vez de explorer, no llega correctamente parece ser ese el problema aunque no entiendo por qué.
Código Javascript:
Ver original
  1. <script>document.write(ancho);</script>

Me estoy volviendo loco, odio las cosas que se escapan a mi entendimiento XD.

Última edición por kyke_89; 12/12/2011 a las 13:38
  #6 (permalink)  
Antiguo 12/12/2011, 14:20
 
Fecha de Ingreso: junio-2010
Ubicación: Huelva
Mensajes: 24
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Problema en IExplorer

¡PROBLEMA RESUELTO!
El fallo era que tenia declarada una constante y parece ser que con IExplorer no se pueden declarar constantes o te estropean el codigo entero.

Increible la de tiempo que te puede hacer perder un fallo tonto.

¡Muchisimas gracias maycolalvarez por intentar resolverme el problema!

Ahora a intentar que se vea igual en todos los navegadores porque en todos va bien pero para variar en el explorer se me descuadra todo .
  #7 (permalink)  
Antiguo 12/12/2011, 14:25
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Problema en IExplorer

no puedes usar por un lado scripts dentro del html y una función que detecte el DOM cargado, debes hacerlo todo en la misma función del DOM cargado, por lo cual no puedes usar document.write, utiliza funciones del DOM como:

document.getElementById('fondo').style.backgroundSize = ancho+'px';

además el problema puede ser porque el CSS baclground-size es parte de CSS3 y no está asimilada por completo en la mayoría de los navegadores: http://www.cssblog.es/css-background-size/
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...

Etiquetas: internetexplorer
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 20:05.