Cita:
Iniciado por venkman 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"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>programming: que hay de nuevo en línea</title>
<link>http://taltal/</link>
<description></description>
<item>
<title>Symbian will go open source</title>
...
Eso tiene un DOM, pero ese DOM no es el mismo que el de un documento HTML. En concreto, los nodos no tienen ninguna propiedad llamada innerHTML.
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;
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) {
return this.getElementsByTagName(etiqueta)[0].childNodes[0].nodeValue;
pues bien, haciendo uso de este metodo, el script no funciona en IE y sí en FF.
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;
Acaso no funciona
prototype con IE?