Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Frameworks JS (http://www.forosdelweb.com/f127/)
-   -   Problemas con IE (http://www.forosdelweb.com/f127/problemas-con-ie-409308/)

federicoizuel 14/07/2006 06:39

Problemas con IE
 
Estoy haciendo un sistema de solapas con AJAX y me funciona barbaro con Mozilla, pero con IE no me carga el contenido, y no puedo encontrar el problema, a ver si alguien lo ve:
Este es el código Java:
Código HTML:

<script type="text/javascript" language="JavaScript">
function nuevoAjax(){
        var xmlhttp=false;
        try {
                xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                try {
                        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                        } catch (E) {
                        xmlhttp = false;
                }
        }
        if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
                xmlhttp = new XMLHttpRequest();
        }
        return xmlhttp;
}
function cambia(pagina){
        ajax=nuevoAjax();
        ajax.open("GET",pagina,true);
        ajax.onreadystatechange=function() {
        if (ajax.readyState==4) {
                contenedor = document.getElementById('contenedor');
                contenedor.innerHTML = ajax.responseText
                }
        }
        ajax.send(null)
}
</script>

El código de las solapas que llaman a la funciones sería este:
Código HTML:

<td class="espacio">&nbsp;</td><td class="solapa" id="s1"><a href="javascript:cambia('solapa1.php','s1');" class="solapalink">Solapa 1</a></td>
En las paginas que caga el script por ahora lo único que hay es esto:
Código PHP:

<?echo "Blabla";?>

¿Alguna Sugerencia?

Westfran 14/07/2006 17:31

No veo el "contenedor" del que hace referencia la función...

contenedor = document.getElementById('contenedor');

Por ahí puede ir la cosa...

Lo otro es que estás pasando 2 parámetros al llamar la función, pero al crear la función sólo pide 1, es decir, mandas javascript:cambia('solapa1.php','s1'); y recibes sólo cambia(pagina);

No sé si te ayude...

federicoizuel 14/07/2006 20:13

No, gracias por la respuesta de todo modos, pero esos no son los problemas, pasa que no copie todo el código, pero el 'contenedor' está, es
Código HTML:

<div id="contenedor">&nbsp;</div>
, y lo de la función es cierto, pero lo arregle y sigue con el mismo problema, y es raro porque en Mozilla funciona bien.

zaqpz 14/07/2006 20:32

Cambiale el nombre a la variable contenedor por contenedor2 (o cualquier otro) o cuando la declarás ponele "var" delante. Parece ser que IE tiene conflictos con variables de mismo nombre que un ID:

Código PHP:

contenedor2 document.getElementById('contenedor');
contenedor2.innerHTML ajax.responseText 

o también:

Código PHP:

var contenedor document.getElementById('contenedor');
contenedor.innerHTML ajax.responseText 

Saludos.

federicoizuel 14/07/2006 21:19

Mil GRACIAS! Ya me tenía loco, no podía encontrar el problema y nunca me lo hubiera imaginado, enserio, muchisimas gracias.

diper 19/07/2006 12:52

Proba esto. asi me funciona en los 2 navegadores.


<script type="text/javascript">
var xmlhttp;

xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");

if (typeof XMLHttpRequest != 'undefined') {
xmlhttp = new XMLHttpRequest();
}

function Ver(page){

var ie4;

ie4 = (document.all)? true:false //comprara la existencia del objeto que solo es de iexplorer

if (!ie4){
if (xmlhttp = 'undefined')
xmlhttp = new XMLHttpRequest();
}

if (xmlhttp) {
var oInputArray = new Array();
var requestFile = "/sara/" + page + ".do";

xmlhttp.open("GET", requestFile ,true);
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState==4) {
document.getElementById("cuerpo").innerHTML = xmlhttp.responseText;
//alert(xmlhttp.responseText);
}
}
xmlhttp.send(null);
}
}
</script>

marivi 25/07/2006 17:03

Hola Diper, pero donde se hace el llamado a ver(page) ??


La zona horaria es GMT -6. Ahora son las 22:07.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.