chrome和safari中的getElementsByTagName问题

时间:2010-02-05 14:45:55

标签: javascript xml dom safari google-chrome

我正在使用javascript解析Google Maps RSS并使用以下代码获取点坐标:

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

不幸的是它适用于FF但不适用于safari和chrome(仍未在Opera和IE中测试过)

XML看起来像:

<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>

4 个答案:

答案 0 :(得分:6)

在IE6,7,8,FF,Opera,Chrome和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

感谢他们完成这项工作的所有提示)

答案 1 :(得分:3)

对我来说类似的问题。 getElementsByTagName在safari上失败了,但没有在Firefox / Internet Exlporer上失败。根据代理人......

,证明Firefox / Internet Explorer需要名称空间前缀,而不是Safari
getElementsByTagName("iesr:Collection")  // ff/ie

getElementsByTagName("Collection")       // safari

答案 2 :(得分:1)

从技术上讲,<georss:point>的代码名称为point,而不是georss:point。试试吧。

答案 3 :(得分:0)