12/10/2006, 11:22
|
| | Fecha de Ingreso: julio-2006
Mensajes: 6
Antigüedad: 18 años, 4 meses Puntos: 0 | |
Saludes a todos, estoy tratando de implementar ajax para evitar la molestia recarga en mis paginas, pero he tenido un problema, el asunto es que puede cargar unas paginas usando IE, netscape, y firefox, pero en opera no logro hacer que cargue mis paginas, el codigo q utilizo es el siguiente:
function ini(){
var XMLHttpRequestObject = false;
if ((window.XMLHttpRequest) && (window.XMLHttpRequest != 'undefined')) {
XMLHttpRequestObject = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
XMLHttpRequestObject = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e1) {
alert('Su navegador no posee las caracteristicas necesarias para visualizar la aplicacion');
}
}
}
return XMLHttpRequestObject;
}
function getData(met,dataSource) {
XMLHttpRequestObject = ini();
if (XMLHttpRequestObject) {
met = met.toUpperCase();
XMLHttpRequestObject.open(met,dataSource,true);
if (met == 'POST'){
XMLHttpRequestObject.setRequestHeader("Method", "POST " + dataSource + " HTTP/1.1")
XMLHttpRequestObject.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
}
XMLHttpRequestObject.onreadystatechange = obt_contenido;
if (met == 'POST')
XMLHttpRequestObject.send(crear_arreglo());
else
XMLHttpRequestObject.send(null);
}
}
function obt_contenido() {
if(XMLHttpRequestObject.readyState == 1){
if (document.layers){
this.document.layers["precarga"].innerText = "Cargando........";
} else if (document.all){//Para IE
this.document.all["precarga"].innerHTML = "Cargando........";
} else if (document.getElementById){ // Para Netscape, Firefox
document.getElementById("precarga").innerHTML = "Cargando........";
}
}else if (XMLHttpRequestObject.readyState == 4){
if (XMLHttpRequestObject.status == 200) {
//this.document.write(XMLHttpRequestObject.responseT ext);
if (document.layers){
this.document.layers["contenedor"].innerText = XMLHttpRequestObject.responseText;
this.document.layers["precarga"].innerText = "Carga Terminada";
} else if (document.all){//Para IE
this.document.all["contenedor"].innerHTML = XMLHttpRequestObject.responseText;
this.document.all["precarga"].innerHTML = "Carga Terminada";
} else if (document.getElementById){ // Para Netscape, Firefox
document.getElementById("contenedor").innerHTML = XMLHttpRequestObject.responseText;
document.getElementById("precarga").innerHTML = "Carga Terminada";
}
} else if (XMLHttpRequestObject.status == 404){
alert("La página que desea vizualizar no existe");
}else{
//mostramos el posible error
alert("Error: " + XMLHttpRequestObject.status);
}
}
}
function crear_arreglo(){
var objetos = new Array();
var mnu = this.document.getElementsByTagName("input");
var cant_input = mnu.length;
//Almacena en el arreglo los valores de los objetos input
for (var i=0; i < cant_input; i++){
objetos[i] = new Array();
objetos[i][0] = mnu[i].name;
objetos[i][1] = mnu[i].value;
}
var slt = this.document.getElementsByTagName("select");
var cant_select = slt.length;
//Almacena en el arreglo los valores de los objetos select
for(var i=0; i < cant_select; i++){
var idx = cant_input + i;
objetos[idx] = new Array();
objetos[idx][0] = slt[i].name;
var index = slt[i].selectedIndex;
objetos[idx][1] = slt[i].options[index].value;
}
var txtarea = this.document.getElementsByTagName("textarea");
var cant_txtarea = txtarea.length;
//Almacena en el arreglo los valores de los objetos textarea
for(var i=0; i < cant_txtarea; i++){
var idx = cant_input + cant_select + i;
objetos[idx] = new Array();
objetos[idx][0] = txtarea[i].name;
objetos[idx][1] = txtarea[i].value;
}
//Crea la cadena que contendra las variables a pasarse por el metodo POST
var cadena = "";
for(var j=0; j < objetos.length; j++){
cadena += objetos[j][0] + "=" + objetos[j][1];
if (j != (objetos.length - 1))
cadena += "&";
}
return cadena;
}
Espero me puedan ayudar, ya que la verdad no se que esta pasando porque se supone que opera reconoce el getElementById, y no lo esta haciendo.
Gracias por la ayuda |