getElementsByTagName problem in chrome and safari

2019-01-25 20:13发布

问题:

I`m parsing a Google Maps RSS with javascript and using the following code to get the point coordinates:

point_coords = items.getElementsByTagName('georss:point')

Unfortunately it works in FF but not in safari and chrome (still not tested in Opera and IE)

The XML looks like:

<item>
    <guid isPermaLink="false">guidNo</guid>
    <pubDate>Mon, 23 Mar 2009 20:16:41 +0000</pubDate>

    <title>title text</title>
    <description><![CDATA[text]]></description>
    <author>UniCreditBulbank</author>
    <georss:point>
      42.732342 23.296659
    </georss:point>
  </item>

回答1:

Final solution working in IE6,7,8, FF, Opera, Chrome and Safari

point_coords = item.getElementsByTagName('georss:point')[0];
if(!point_coords || point_coords == null){
    point_coords = item.getElementsByTagName('point')[0];
}
if(!point_coords || point_coords == null){
    point_coords = item.getElementsByTagNameNS('http://www.georss.org/georss', 'point')[0];
}
return point_coords

Thanks for all hints they did the job )



回答2:

Similar problem for me. getElementsByTagName was failing on safari but not Firefox/Internet Exlporer. Turns out the namespace prefix was needed for Firefox/Internet Explorer and not for Safari so now, according to the agent...

getElementsByTagName("iesr:Collection")  // ff/ie

getElementsByTagName("Collection")       // safari


回答3:

Technically, the tag name for <georss:point> is point, not georss:point. Try that.



回答4:

Workaround for the safari implementation.

https://gist.github.com/branflake2267/d16365012e27f514685eb5c365dcb315