Hay alguna diferencia entre :
Código HTML:
<a href="javascript:paginas('index.php?ir=menu_buscar_perfiles&tipo=sencilla&accion=mostrar_index', 'capa_sms_1_completo',200)">Busqueda sencilla</a>
Código HTML:
<script type="text/javascript"> paginas('index.php?ir=menu_buscar_perfiles&tipo=sencilla&accion=mostrar_index&provincia_select=ok&pais_id=8','capa_sms_1_completo',200); </script>
Entonces ¿La segunda llamada a la función le pasa algo?
La única diferencia en la funcionalidad, es que en el primer método, la función paginas() se activa cuando se hace click, y con el segundo método, después de pulsar el desplegable con todos los paises, se redirecciona a la nueva página html (gracias a onchange="document.forms.buskeda_sencilla.action=' index.php?ir=menu_buscar_perfiles&tipo=index&mostr ar_layer=sencilla&provincia_select=ok'; document.forms.buskeda_sencilla.submit()), donde se ejecuta automáticamente la función paginas().
Muchas Gracias (y dejo el mensaje anterior por si os puede aclarar algo...)
----------------------------------
Hola gente!
Estoy jugando un poco con capas para no tener que recargar tantas veces una web que estoy realizando, pero tengo un problemilla..
Estaba utilizando el firefox y no me daba ningún problema, pero se me ocurre probar con el internet explorer, y toma, me da error xD
El error es "Se requiere un objeto" en la linea 385 y se refiere al documento principal, pero.. en el documento html no existen mas de 150 lineas, así que me imagino que se referirá al ".js", que apunta justamente a la última linea... Así que no me aclara nada :S
Os cuento la función que quiero realizar, que es algo compleja xD
1- Desde una página se abren diferentes layers para realizar búsquedas.
Esta es la parte del código importante:
Código HTML:
<div id="capa_sms_1_completo" class="texto_12_negro_bold" align="center" style="z-index:1;top:300;left:280;height:100;width:440;position:absolute;visibility:hidden;"></div> <div id="capa_sms_2_completo" class="texto_12_negro_bold" align="center" style="z-index:1;top:300;left:280;height:200;width:440;position:absolute;visibility:hidden;"></div> <div id="capa_sms_3_completo" class="texto_12_negro_bold" align="center" style="z-index:1;top:300;left:280;height:70;width:440;position:absolute;visibility:hidden;"></div> <!-- Comienza tabla contenido --> <table width="380" height="35" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td height="2" bgcolor="#FFFFFF"><img src="images/disenos/base/tit_barra_blanco.gif" width="2" height="2"></td> </tr> <tr> <td bgcolor="#333333"><div align="center" class="texto_12_blanco_bold"> <!-- Comienza tabla 1 columnas --> <table width="227" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="20"><div align="center"> <br><img src="images/disenos/perfil/iconos/search-icon-orange.gif" border="0"><br><img src="images/disenos/perfil/iconos/search-folder-orange.gif" border="0"><br><img src="images/disenos/perfil/iconos/search-grey.gif" border="0"> </td> <td width="207"><div align="left"> <br><a href="javascript:paginas('index.php?ir=menu_buscar_perfiles&tipo=sencilla&accion=mostrar_index', 'capa_sms_1_completo',200)">Busqueda sencilla<br><a href="javascript:paginas('index.php?ir=menu_buscar_perfiles&tipo=avanzado&accion=mostrar_index', 'capa_sms_2_completo',200)">Busqueda avanzada<br><a href="javascript:paginas('index.php?ir=menu_buscar_perfiles&tipo=nick&accion=mostrar_index', 'capa_sms_3_completo',200)">Búsqueda por Nick </td> </tr> </table> <!-- Termina tabla 2 columnas --> <br><br></div></td> </tr> <tr> <td width="350" height="2" bgcolor="#FFFFFF"><div align="center"><img src="images/disenos/base/tit_barra_blanco.gif" width="2" height="2"></div></td> </tr> </table> <!-- Termina tabla contenido -->
2- Cuando se hace click para abrir las búsquedas, se llama a una función en javascript (paginas()) que carga un trozo de página web en una de las 3 capas disponibles.
Hasta aquí todo bien.
3-En 2 capas se puede elegir un páis de procedencia, y cuando se elige el país, se lanza una instancia de tipo:
Código HTML:
<select class="reg_elegir" name="pais" onchange="document.forms.buskeda_avanzada.action='index.php?ir=menu_buscar_perfiles&tipo=index&mostrar_layer=avanzado&provincia_select=ok'; document.forms.buskeda_avanzada.submit()"><option selected value="-1"></option><option value="4">Alemania</option>
4- Lo que ocurre al cargarse esa página es que, al ser una web+un layer, necesito volver a cargar el layer de nuevo, y lo hago mediante esto:
Código HTML:
<script type="text/javascript"> paginas("index.php?ir=menu_buscar_perfiles&tipo=avanzado&accion=mostrar_index&provincia_select=ok&pais_id=4","capa_sms_2_completo",200); </script>
Todo se hace correctamente, pero el internet explorer me da el error.. Y creo que es por esta última función.
Os pego la parte de código que tengo en el js que se utiliza para estas secciones de la web:
Código HTML:
////////////////////////////////////////////// ///Funciones para las opciones de busqueda//// ////////////////////////////////////////////// // Documento JavaScript // Esta función cargará las paginas function paginas (url, id_contenedor, left_sum) { var pagina_requerida = false; if (window.XMLHttpRequest) { // Si es Mozilla, Safari etc pagina_requerida = new XMLHttpRequest (); } else if (window.ActiveXObject) { // pero si es IE try { pagina_requerida = new ActiveXObject ("Msxml2.XMLHTTP"); } catch (e) { // en caso que sea una versión antigua try { pagina_requerida = new ActiveXObject ("Microsoft.XMLHTTP"); } catch (e) { } } } else return false; pagina_requerida.onreadystatechange = function () { // función de respuesta cargarpagina (pagina_requerida, id_contenedor,left_sum); } pagina_requerida.open ('GET', url, true); // asignamos los métodos open y send pagina_requerida.send (null); } // todo es correcto y ha llegado el momento de poner la información requerida // en su sitio en la pagina xhtml function cargarpagina (pagina_requerida, id_contenedor,left_sum) { if (pagina_requerida.readyState == 4 && (pagina_requerida.status == 200 || window.location.href.indexOf ("http") == - 1)) document.getElementById (id_contenedor).innerHTML = pagina_requerida.responseText; //Cambiamos posicion de la capa segun la resolucion layers_posic(id_contenedor,left_sum); var cuadro = document.getElementById(id_contenedor); cuadro.style.visibility = "visible"; //Solución c-tre a usuarios que no cierran var guardar; //Recorremos las 3 capas para obtener la referencia numérica de la capa a mostrar for(var i=1;i<4;i++) { var cuadro2 = document.getElementById("capa_sms_"+i+"_completo"); if(id_contenedor == cuadro2) { guardar=i; } } //Ahora que ya tenemos la referencia numérica, recorremos de nuevo las 3, y hacemos que se muestren todas con hidden salvo la actual. for(var j=1;j<4;j++) { var cuadro3 = document.getElementById("capa_sms_"+j+"_completo"); if(j != guardar) { cuadro3.style.visibility = "hidden"; } } cuadro.style.visibility = "visible"; } //Función para modificar la posicion de diferentes layers según la resolución function layers_posic(id_contenedor, left_sum) { var cuadro = document.getElementById(id_contenedor); var suma; if(screen.width < 900) { suma = 0 ; } else if(screen.width < 1024) { suma = 70 ; } else if(screen.width < 1200) { suma = 160 ; } else if(screen.width < 1400) { suma = 240 ; } else if(screen.width < 1500) { suma = 320 ; } else { suma = 400 ; } cuadro.style.left = left_sum + suma; }
Se que es un poco complejo de entender... pero a ver si alguien me puede echar un cable. Lo agradecería muchísimo :D
Gracias!!