![]() |
no me funciona en IE Bueno, en principio, no se exactamente donde enviar este post, si a Ajax o a Javascript. Como de costrumbre me da error este codigo en IE aunque en FF funciona perfectamente Se trata de un lector de RSS que viene como ejerccio en un curso de Ajax y que estoy tratando de destripar para comprender su funcionamento. El codigo HTML y JS es este: Código: <script type="text/javascript">descubreRSS.php simplepie.inc proxy.php Para no hacer excesivamente largo este post, no pego el texto de estos ficheros. Si fuense necesario, diganmelo y lo hare El error lo da en la linea que he resaltado en rojo y el texto que que entrega la consola dE IE es: "El objeto no acepta esta propiedad o metodo" Un saludo |
Respuesta: no me funciona en IE Hola juanromerocruz: Veo que hay implementada una función get() que no sé si funcionará. ¿Podrías probar a sustituir tu línea de rojo por código nativo? Quiero decir: Código: var titulo = item.get('title');Código: item[i].getElementsByTagName('title')[0].textContent;PD: Por lo que te he dicho quizá con poner item[i].get('title') funcione. Saludos :adios: |
Respuesta: no me funciona en IE Darte cuenta que en la linea anterior de Código: var titulo = item.get('title');Código: var item = items[i];He probado las dos soluciciones que me has dado y sigue sin funcionar |
Respuesta: no me funciona en IE He continuado investigando y he descubierto lo siguiente: Llegado hasta esta linea, funciona tanto en FF como en IE Código: var canal = xml.getElementsByTagName('channel')[0];Código: var titulo = canal.getElementsByTagName('title')[0].textContent;Desde mi ignorancia: ¿Acaso FF no reconoce textContent? He googleado sobre esto y no he sacado nada claro |
Respuesta: no me funciona en IE Cita:
Cita:
Si buscas con google javascript+IE+textContent los tres primeros enlaces te revelan que en IE no existe textContent (algo que no tenía ni idea). Como alternativa proponen innerHTML o innerText. Mira a ver si así puedes seguir adelante. Saludos! |
Respuesta: no me funciona en IE EStoy a punto de tirar la toalla, y os puedo asegurar que seria la primera vez: He probado el codigo con innerHTML y con innerText y nada, sigue dandome undefined. He hecho una prueba con un codigo muy basico: Código: <body>devolviendome alert(contenidoDiv) el contenido del div=primero El codigo reformado es: Código: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" Si insertamos un alert(canal); despues de Código: var canal = xml.getElementsByTagName('channel')[0];lo que quiere decir que hasta aqui tenemos un objeto del arbol DOM dentro del documento XML que nos devuelve Si a continuacion ponemos otro alert(canal.getElementsByTagName('title')[0]); nos vuelve a dar otro objectElement. Perdonar que sea tan meticuloso, pero es que quisiera saber que es lo que ocurre aqui. Entonces no entiendo por que da indefinido al contenido cuando se le agrega el innerHTML y en el otro scrip de prueba funciona en las mismas circustancias creo. O no? Una ayudita |
Respuesta: no me funciona en IE una orientacion, por favor Perdonen... |
Respuesta: no me funciona en IE Estás recibiendo un XML. Un XML es un XML no es HTML. Luego es normal que un nodo de un documento de XML no tenga una propiedad innerHTML. Un documento HTML (como en el ejemplo que pones) sí la tiene pero tu respuesta no es HTML. |
Respuesta: no me funciona en IE Hola de nuevo: No he entendido muy bien a venkman, pero podrías probar nodeValue o innerText... se me acaban las opciones, debería haber funcionado innerHTML tal y como dicen por ahí. Para averiguar las propiedades que funcionan y te devuelven lo que quieres: Código PHP: Saludos. |
Respuesta: no me funciona en IE Lo que pretendía decir es que la respuesta que está recibiendo no es un documento HTML. Hace una petición que recibe text/xml y que por tanto se trata como XML. No sé si sabréis la diferencia entre un documento HTML y un documento XML, pero no son lo mismo, y su Document Object Model tampoco es igual. Lo que recibe es un documento XML como: Código: <?xml version="1.0" encoding="UTF-8"?>Si quieres ver más sobre el XML DOM. Para acceder, en este caso, al valor entre <title>blablabla</title> usa .childNodes[0] para acceder al nodo de texto y luego .nodeValue para obtener el valor. Código: var titulo = canal.getElementsByTagName('title')[0].childNodes[0].nodeValue; |
Respuesta: no me funciona en IE Cita:
Efectivamente eso es lo que le pasaba, hechos los cambios oportunos funciona perfectamente en los dos navegadores. Bien solo me que da una duda: Este codigo hace uso de de un metodo que se le agrega a Object por medio de prototype Código: Object.prototype.get = function(etiqueta) {para que funcione en los dos tengo que poner el codigo nativo. o sea Código: var titulo = item.getElementsByTagName('title')[0].childNodes[0].nodeValue; |
Respuesta: no me funciona en IE No te lo puedo decir con seguridad, pero dado que en IE el XHR y demás se hacen a través de un objeto ActiveX, no me extrañaría que IE mantuviera diferente contexto para el DOM que construye con el objeto ActiveX y por eso el Object del que parte no es el mismo. |
| La zona horaria es GMT -6. Ahora son las 19:17. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.