Lo que quiero es que cuando clicke en la opción del menú ajax, pues evidentemente la url se actualice con el hash sin recargar la web.
Tengo 2 capas en la libreriaAjax.js, la capaContenedoraMenu y la capaContenedora, que es la que actualiza cuando elegimos del menú. Aquí lo podéis ver:
Código:
function creaAjax(){ var objetoAjax=false; try { /*Para navegadores distintos a internet explorer*/ objetoAjax = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { /*Para explorer*/ objetoAjax = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { objetoAjax = false; } } if (!objetoAjax && typeof XMLHttpRequest!='undefined') { objetoAjax = new XMLHttpRequest(); } return objetoAjax; } function FAjax (url,capa,valores,metodo) { var ajax=creaAjax(); var capaContenedora = document.getElementById(capa); /*Creamos y ejecutamos la instancia si el metodo elegido es GET*/ if (metodo.toUpperCase()=='GET'){ ajax.open ('GET', url, true); ajax.onreadystatechange = function() { if (ajax.readyState==1) { capaContenedora.innerHTML="<img src=imagenes/cargando.gif>"; } else if (ajax.readyState==4){ if(ajax.status==200){ document.getElementById(capa).innerHTML=ajax.responseText; } else if(ajax.status==404) { capaContenedora.innerHTML = "La direccion existe"; } else { capaContenedora.innerHTML = "Error: ".ajax.status; } } } ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); ajax.send(null); return } } function FAjaxMenu (url,capa,valores,metodo) { var ajax=creaAjax(); var capaContenedoraMenu = document.getElementById(capa); /*Creamos y ejecutamos la instancia si el metodo elegido es GET*/ if (metodo.toUpperCase()=='GET'){ ajax.open ('GET', url, true); ajax.onreadystatechange = function() { if (ajax.readyState==1) { capaMenu.innerHTML="<img src=imagenes/cargando.gif>"; } else if (ajax.readyState==4){ if(ajax.status==200){ document.getElementById(capa).innerHTML=ajax.responseText; } else if(ajax.status==404) { capaMenu.innerHTML = "La direccion existe"; } else { capaMenu.innerHTML = "Error: ".ajax.status; } } } ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); ajax.send(null); return } }
Y el código del menú es, os pongo sólo la parte que debería actualizar el hash:
Código:
No sería esto suficiente para que al clickar en la opción del menú, además de actualizar la capaContenedora (que ya me funciona bien), actualizará la url con el hash a partir del # ¿?¿?<tr> <td width="180" class="menu-td"><a href="#sport=<?php echo $deporte; ?>&country=<?php echo $pais; ?>&league=<?php echo $liga; ?>&event=<?php echo $evento; ?>&ref=<?php echo $afiliado; ?>" onClick="FAjax('sportsbetting-event.php?sport='+ '<?php echo $deporte; ?>'+'&country='+ '<?php echo $pais; ?>'+'&league='+ '<?php echo $liga; ?>'+'&event='+ '<?php echo $evento; ?>'+'&ref='+ '<?php echo $afiliado; ?>' ,'capaContenedora','','get'); return false"><?php echo $evento; ?></a></td> </tr>
Muchas gracias amigos, como siempre por la ayuda.