Foros del Web » Programando para Internet » Javascript » Frameworks JS »

IE8 no me interpreta codigo que los otros si

Estas en el tema de IE8 no me interpreta codigo que los otros si en el foro de Frameworks JS en Foros del Web. Me he puesto a comprobar como funcionaba todo en todos los navegadores que tengo (safari, chrome, opera y firefox) y todo iba bien. Entonces me ...
  #1 (permalink)  
Antiguo 15/09/2010, 18:43
FDA
 
Fecha de Ingreso: agosto-2010
Mensajes: 99
Antigüedad: 14 años, 4 meses
Puntos: 2
IE8 no me interpreta codigo que los otros si

Me he puesto a comprobar como funcionaba todo en todos los navegadores que tengo (safari, chrome, opera y firefox) y todo iba bien.
Entonces me he iluminado y me he atrevido a probarlo también con IE8, algo que tarde o temprano tendria que hacer, y me desespera.

He podido solucionar varias cosas, pero no ha habido manera con una pequeña parte del codigo de jquery.

Código:
      
                $("li.campionat").click(function(event) {
                $("li.campionat").fadeOut();
                $("#events_aux").fadeOut();
                $("#barra_camp").fadeIn();
                $("#content_camp").fadeIn();
                $("#thumbs").show();
                var champ=$(this).attr('id');
                if (champ=='c1'){
                    bcolor = "#FF3300";
                    bimage = "futsal_th.jpg";
                    logo = "barra_futsal.png";
                    w = "225px";
                }
                else if (champ=='c2'){
                    bcolor = "#FFCC33";
                    bimage = "fut7_th.jpg";
                    logo = "barra_fut7.png";
                    w = "228px";
                }
                else if (champ=='c3'){
                    bcolor = "#66FF00";
                    bimage = "fut11_th.jpg";
                    logo = "barra_fut11.png";
                    w = "249px";    
                }
                else if (champ=='c4'){
                    bcolor = "#3399FF";
                    bimage = "futsal24_th.jpg";
                    logo = "barra_futsal24.png";
                    w = "222px";
                }
                $("#caixa_events").animate({'height':"600px",'top':"100px",'width':"750px"}); 
                $("#barra_camp").css({'background-color': bcolor});
                $(".menu_camp").css({'background-color': bcolor});
                $("#m" + champ ).fadeIn();
                $("#thumb_"+champ).css({'background-image':"url(../../logos/soccer/" + bimage +")"})
                $("#logo_barra").css({'background-image':"url(../../logos/soccer/" + logo +")",'width':w});
                llamadasin('campionats/'+champ+'/presentacio.html','content_camp');
            });
Es la misma funcion que hace dias ya puse por aquí y me ayudasteis con un problema y de paso me la pusisteis mas elegante, todo un detalle.

Pues resulta que IE8 no quiere entenderlo, no hace casi nada, de hecho no hace nada a partir del var champ=$(this).attr('id');

Supongo que por algun motivo IE8 no conoce el método .attr(); tengo alguna alternativa a parte del cartelito para que se bajen un navegador de verdad?

PD: No he probado versiones anteriores de IE, no tengo ninguna.
  #2 (permalink)  
Antiguo 16/09/2010, 05:48
 
Fecha de Ingreso: enero-2008
Ubicación: Buenos Aires
Mensajes: 305
Antigüedad: 16 años, 11 meses
Puntos: 14
Respuesta: IE8 no me interpreta codigo que los otros si

Código Javascript:
Ver original
  1. $("li.campionat").click(function(event) {
  2.   var bcolor = ''; var bimage = ''; var logo= ''; var w = '';
  3.   var champ = $(this).attr('id');
  4.   $("li.campionat, #events_aux").fadeOut();
  5.   $("#barra_camp, #content_camp").fadeIn();
  6.   $("#thumbs").show();
  7.   if (champ=='c1'){
  8.     bcolor = "#FF3300";
  9.     bimage = "futsal_th.jpg";
  10.     logo = "barra_futsal.png";
  11.     w = "225px";
  12.   }
  13.   else if (champ=='c2'){
  14.     bcolor = "#FFCC33";
  15.     bimage = "fut7_th.jpg";
  16.     logo = "barra_fut7.png";
  17.     w = "228px";
  18.   }
  19.   else if (champ=='c3'){
  20.     bcolor = "#66FF00";
  21.     bimage = "fut11_th.jpg";
  22.     logo = "barra_fut11.png";
  23.     w = "249px";    
  24.   }
  25.   else if (champ=='c4'){
  26.     bcolor = "#3399FF";
  27.     bimage = "futsal24_th.jpg";
  28.     logo = "barra_futsal24.png";
  29.     w = "222px";
  30.   }
  31.                            
  32.   $("#caixa_events").animate({'height':"600px",'top':"100px",'width':"750px"});
  33.   $("#barra_camp").css({'background-color': bcolor});
  34.   $(".menu_camp").css({'background-color': bcolor});
  35.   $("#m" + champ ).fadeIn();
  36.   $("#thumb_"+champ).css({'background-image':"url(../../logos/soccer/" + bimage  
  37.   +")"})
  38.   $("#logo_barra").css({'background-image':"url(../../logos/soccer/" + logo        
  39.   +")",'width':w});
  40.   llamadasin('campionats/'+champ+'/presentacio.html','content_camp');
  41. });
  #3 (permalink)  
Antiguo 16/09/2010, 06:00
FDA
 
Fecha de Ingreso: agosto-2010
Mensajes: 99
Antigüedad: 14 años, 4 meses
Puntos: 2
Respuesta: IE8 no me interpreta codigo que los otros si

bien!, funciona todo lo de redimensionar la ventana, cambiar colores y logos.

Pero sigue sin funcionar el ajax, concretamente esta linea: llamadasin('campionats/'+champ+'/presentacio.html','content_camp');

Me voy al foro de ajaxa ver si alguien sabe como solucionar el problema? pq podria ser que fuera la propia definicion de la funciona ajax que no le guste....
  #4 (permalink)  
Antiguo 16/09/2010, 09:57
Avatar de tredio  
Fecha de Ingreso: noviembre-2008
Ubicación: Carabobo
Mensajes: 466
Antigüedad: 16 años, 1 mes
Puntos: 66
Respuesta: IE8 no me interpreta codigo que los otros si

si pones como esta definida esa funcion podriamso ver si tienes algun error en ella, me refiero a llamadasin()
__________________
Extension Google Chrome
dar las gracias no cuesta nada :D
  #5 (permalink)  
Antiguo 16/09/2010, 10:10
FDA
 
Fecha de Ingreso: agosto-2010
Mensajes: 99
Antigüedad: 14 años, 4 meses
Puntos: 2
Respuesta: IE8 no me interpreta codigo que los otros si

Aquí està la función llamadasin y la que llama ella para devolver la página.

Código:
function llamadasin(url, contenedor){
var pagina_requerida = false
if (window.XMLHttpRequest) {
// comprueba si el navegador es opera, safari, mozilla, etc.
pagina_requerida = new XMLHttpRequest()
}
else if (window.ActiveXObject){
// comprueba si el navegador es internet explorer
try {
pagina_requerida = new ActiveXObject("Msxml2.XMLHTTP")
}
catch (e){
// caso de versión antigua de internet explorer
try{
pagina_requerida = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){
}
}
}
else {
return false
}
 
pagina_requerida.onreadystatechange=function(){
// llamada a la función que carga la página
pintapagina(pagina_requerida, contenedor)
}
// métodos open y send
pagina_requerida.open('GET', url, true)
pagina_requerida.send(null)
}
 
// función que presenta la información
function pintapagina(pagina_requerida,contenedor){
if (pagina_requerida.readyState == 4 && (pagina_requerida.status==200 || window.location.href.indexOf("http")==-1))
document.getElementById(contenedor).innerHTML=pagina_requerida.responseText
}
Por cierto tienes idea de pq lo de antes no me funcionaba con firefox si no le ponia el document.? pq los otros si que lo aceptaban...
  #6 (permalink)  
Antiguo 16/09/2010, 11:10
Avatar de tredio  
Fecha de Ingreso: noviembre-2008
Ubicación: Carabobo
Mensajes: 466
Antigüedad: 16 años, 1 mes
Puntos: 66
Respuesta: IE8 no me interpreta codigo que los otros si

ya que usas jquery por que no usas las funciones que trae incorporada para el ajax?

creo que la funcion $.load() te puede venir bien para lo que quieres hacer, lee sobre ella en la api de jquery.

y sobre lo de firefox realmente no se cual es la razon de que no funcione solo te presente unas alternativas que podrian dar solucion a tu problema, aunque normalmente no lo haria como tu lo hiciste, yo le hubiese puesto un id al formulario y lo llamaba asi $('#id_formulario')
__________________
Extension Google Chrome
dar las gracias no cuesta nada :D
  #7 (permalink)  
Antiguo 17/09/2010, 05:22
FDA
 
Fecha de Ingreso: agosto-2010
Mensajes: 99
Antigüedad: 14 años, 4 meses
Puntos: 2
Respuesta: IE8 no me interpreta codigo que los otros si

Vale, lo he intentado con el .load(); y es raro de cojones.

En safari funciona (supongo que en el resto de navegadores normales también) pero con IE no se aclara.

Cuando se abre carga correctamente la pàgina que quiero con ajax, pero cuando le doy al menú para cargar otra pàgina me sale la página blanca y solo me dice [object Object].

La llamada tiene esta forma <div class="menu_camp_item"><a href="javascript: $('#content_camp').load('campionats/c1/objectius.html');">Objectius</a></div>

Es identica a la que hace cuando abre pero combiando de página. No soy capaz de ver el fallo.... Aunk la verdad que de ajax estoy verde verde, es la primera vez que lo utilizo.

Por cierto, me ha encantado esto del load(); de jquery, más fácil imposible!
  #8 (permalink)  
Antiguo 17/09/2010, 07:35
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 15 años
Puntos: 65
Respuesta: IE8 no me interpreta codigo que los otros si

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2.   <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
  3.   <script>
  4.       $( function (){
  5.           $('#miLink').click( function (){
  6.               $('#content_camp').load('campionats/c1/objectius.html'');
  7.               return false;
  8.           });
  9.       });
  10.   </script>
  11. </head>
  12. <a href="" id="miLink">Objectius</a>
  13. <div id="content_camp">a</div>
  14.  
  15. </body>
  16. </html>
  #9 (permalink)  
Antiguo 17/09/2010, 07:47
FDA
 
Fecha de Ingreso: agosto-2010
Mensajes: 99
Antigüedad: 14 años, 4 meses
Puntos: 2
Respuesta: IE8 no me interpreta codigo que los otros si

Solucionado!!!!!
Dany, eso no me sirve pq son varios menus que cambian la dirección de la pàgina a la que llaman y por eso me interesaba llamarlas con href=":javascript:.......", aun así he encontrado una solucion a medio camino y k ahora si funciona en todos los navegadores (falta comprobarlo en IE7 i 6, aunk para 6 sinceramente paso, le quedan 2 telediarios y es la cosa mas espantosa que he visto nunca).

Al final lo he hecho así:
Código:
<div class="menu_camp" id="mc1">
				<div class="menu_camp_item" href="campionats/c1/presentacio.html">Presentació</div>
				<div class="menu_camp_item" href="campionats/c1/objectius.html">Objectius</div>
				<div class="menu_camp_item" href="campionats/c1/reglament.html">Reglament</div>
				<div class="menu_camp_item" href="campionats/c1/mapa.html">mapa</a></div>
			</div>
Y como este menú hay 4 donde cambia la id, además van a ser algunos elementos más en este menú, por eso te decia que no me servia, aunk gracias de todos modos!

EL codigo de jquery:

Código:
                               $(".menu_camp_item").each(function(){    
				var href = $(this).attr("href");  
			  	$(this).click(function(){ 
					$("#content_camp").load(href); 
				});  
		   	});
Y funcionaaaaa

Ahora tendré que pelearme con el formulario en ajax que al fantastico IE8 tampoco termina de gustarle....

Grácias a todos, sois de gran ayuda para aprender!!!
  #10 (permalink)  
Antiguo 17/09/2010, 08:02
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 15 años
Puntos: 65
Respuesta: IE8 no me interpreta codigo que los otros si

ahora esta bien :)

solo queria mostrarte que href="javascript: $('#content_camp').load('campionats/c1/objectius.html');" estaba mal
  #11 (permalink)  
Antiguo 17/09/2010, 08:48
Avatar de tredio  
Fecha de Ingreso: noviembre-2008
Ubicación: Carabobo
Mensajes: 466
Antigüedad: 16 años, 1 mes
Puntos: 66
Respuesta: IE8 no me interpreta codigo que los otros si

podrias mejorar la funcion que usas asi:

Código Javascript:
Ver original
  1. $('.menu_camp_item').click(function(){
  2.     $('#content_camp').load($(this).attr('href'));
  3. });
__________________
Extension Google Chrome
dar las gracias no cuesta nada :D
  #12 (permalink)  
Antiguo 17/09/2010, 09:25
FDA
 
Fecha de Ingreso: agosto-2010
Mensajes: 99
Antigüedad: 14 años, 4 meses
Puntos: 2
Respuesta: IE8 no me interpreta codigo que los otros si

mmm perfecto!

Voy a seguir peleandome para que todo funcione en IE8!
Grácias a los 2!!!
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 09:35.