[url]
http://fosquiba.com/Josue/Prueba2.html
[/url]
donde al dar clic en cualquier opcion se cargara en un div contenedor llamada principal donde mando a llamar a la funcion que esta en unos de sus tutoriales:
Código :
<a href= "javascript:llamarasincrono('tutorial1.htm', 'principal')></a>
utilizando la funcion que tienen para cargar paginas en forma asincrona en un div contenedor
Código :
// Esta función cargará las paginas
function llamarasincrono(url, id_contenedor){
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)
}
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){
if (pagina_requerida.readyState == 4 && (pagina_requerida.status==200 || window.location.href.indexOf("http")==-1))
document.getElementById(id_contenedor).innerHTML=pagina_requerida.responseText
}
Pero no me hace nada :s en el IE 6 me muestra en la barra de estado que tengo un error
document.getElementById(..) que me dice es nulo o no es un objeto pero en el IE7 no me hace nada y claro en el FF tampoco.
Como se fijan mi menu cambia de acuerdo al idioma y claro quiero cargar todas las paginas en ese div contenedor principal donde todas esas opciones las tngo en un arreglo definido en una funcion:
Código :
function menu(pos){
// Esta función define el menu de la página. El argumento <pos> indica la
// posición que va a ir "activa".
var ele = new Array;
var link = new Array;
var i = 0;
var d = document; // para abreviar
var total = 4;
ele[ele.length]='<span class="es">INICIO</span><span class="en">HOME</span>'; // 0
ele[ele.length]='<span class="es">EMPRESA</span><span class="en">COMPANY</span>'; // 1
ele[ele.length]='<span class="es">PRODUCTOS</span><span class="en">PRODUCTS</span>'; // 2
ele[ele.length]='<span class="es">INSTALACIONES</span><span class="en">FACILITIES</span>'; // 3
ele[ele.length]='<span class="es">CONTACTO</span><span class="en">CONTACT US</span>'; // 4
//
link[link.length]='llamarasincrono('tutorial1.htm', 'principal')'; // 0
link[link.length]='#'; // 1
link[link.length]='#'; // 2
link[link.length]='#'; // 3
link[link.length]='#'; // 4
d.writeln(' <ul id="navi">');
for(i = 0;i<=(pos-1);i++){
d.writeln('<li><a href="'+link[i]+'">'+ele[i]+'</a></li>');
} // For
d.writeln('<li><a href="'+link[pos]+'" id="actual">'+ele[pos]+'</a></li>');
for(i = pos+1;i<=total;i++){
d.writeln('<li><a href="'+link[i]+'">'+ele[i]+'</a></li>');
} // For
d.writeln(' </ul>');
} // Generador de Menu
//
// Esta función cargará las paginas
function llamarasincrono(url, id_contenedor){
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)
}
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){
if (pagina_requerida.readyState == 4 && (pagina_requerida.status==200 || window.location.href.indexOf("http")==-1))
document.getElementById(id_contenedor).innerHTML=pagina_requerida.responseText
}
mi problema es como hago para llamar la funcion llamarasincrono dentro de cada uno de los elementos de mi menu ya que lo intente llamandolo asi
Código :
link[link.length] = 'llamarasincrono('tutorial.htm','principal')';pero tampoco hace nada espero que me echen la mano o no se que me falta
[/url]
