Buenas compañeros, tengo un gran problema que me está volviendo loco y no se que hacer...
Tengo una aplicación donde la navegación se efectúa vía AJAX con Jquery y el plugin History del mismo.
Las etiquetas <a> que tengan rel="ajax" son las susceptibles al tratamiento:
Código Javascript
:
Ver original$(document).ready(function () {
$.history.init(pageload);
$('a[href=' + document.location.hash + ']').addClass('selected');
$('a[rel=ajax]').click(function () {
var hash = this.href;
hash = hash.replace(/^.*#/, '');
$.history.load(hash);
$('a[rel=ajax]').removeClass('selected');
$(this).addClass('selected');
$('#content').hide();
$('#loading').show();
getPage();
return false;
});
});
function pageload(hash) {
if (hash) getPage();
}
function getPage() {
var data = 'page=' + encodeURIComponent(document.location.hash);
$.ajax({
url: "loader.php",
type: "GET",
data: data,
cache: false,
success: function (html) {
$('#loading').hide();
$('#content').html(html);
$('#content').fadeIn('slow');
}
});
}
Ese es el código JavaScript. Funciona de forma que a mi archivo 'loader.php' llega mediante $_GET['page'] lo que figura en los HREF (lo que figura en negrita)<a href="#
info>
Código PHP:
Ver originalswitch($_GET['page']) {
case 'ejemplo1' : include_once("ejemplo1.php");break;
}
Luego en el loader me encargaría de introducir un switch para en función de la página que solicite me cargue una u otra en el div id="content". (arriba un código de ejemplo)
Digamos que la página no se mueve del index por lo que la barra de direcciones siempre figura index.php#
info,etc.
El problema es que prácticamente he terminado la aplicación y como lo venía probando en Firefox y Chrome sin problema, me encuentro que no me tira con IE...
Os explico que me sucede en IE:
- La navegación en si funciona, pero en el 'title' de la página me cambia de, por ejemplo, TITLE a title#contacto
SOLO cuando es un vínculo generado en el PHP de los include. Es decir, cuando me muevo por el menú estático del index no pasa.
- Y esta la más gorda y que me mata. Tengo en una parte un pequeño buscador que funciona de la siguiente manera:
En función de la opción elegida en la lista desplegable y lo escrito en el textbox altero mediante JS el href del <a> de la siguiente forma (la llamada a esta función se hace en el evento onblur de tanto el textbox como la lista --
onblur="busqueda();return true":
Código Javascript
:
Ver originalfunction busqueda()
{
//Recojo el valor del textbox
objText = document.getElementById("X").value
//Recojo el valor de la lista desplegable
objSelect = document.getElementById("Y")
valorSelect = objSelect.options[objSelect.selectedIndex].value
document.links['buscar'].href = '#info=' + objText + '&info=' + valorSelect
}
Con Firefox y Chrome va perfecto, me cambia el valor y la busqueda va genial. En cambio con IE al pasar por la función y a posteriori linkar da un error en la página y dice exactamente:
"'document.links.buscar' es nulo o no es un objeto"
Por favor les pido que me ayuden. Estoy desesperado... Muchas gracias de antemano ;)