Jquery + XML + Google Maps适用于FF / IE,但不适用于Chrome / Opera

时间:2012-06-28 14:13:36

标签: jquery xml google-maps-api-3

有些日子我正在与这个问题作斗争:我正在使用Jquery从XML中提取数据并将其作为标记放在Google Maps V3上,但是在调试之后它并没有在Chrome和Opera上放置任何标记发现问题在于这一行:

  var lat = $(this).find("geo\\:lat").text();      
  var lng = $(this).find("geo\\:long").text();

在XML中,我需要删除“:”。

虽然在FF和IE中删除“:”的“\”完美无缺,但Chrome和Opera无法正常工作..但如果我转到XML并从该字段中删除“:”并使用此代码运行代码线条,效果很好。

  var lat = $(this).find("geolat").text();      
  var lng = $(this).find("geolong").text();

这是一个复制Chrome和Opera错误的简化版本 http://dl.dropbox.com/u/15802004/teste.zip 要复制错误,这是注释/取消注释行。

//url: "teste1.xml",     
  url: "teste2.xml",

(and...)        

    //var lat = $(this).find("geo\\:lat").text();            
   //var lng = $(this).find("geo\\:long").text();             
      var lat = $(this).find("geolat").text();      
      var lng = $(this).find("geolong").text();

我感谢任何帮助

1 个答案:

答案 0 :(得分:0)

这是一个已知但仍未修复的错误。

您可以使用getElementsByTagNameNS()代替(在FF,Chrome和Opera中使用)和$.find()作为IE的后备广告。

geo:lat的示例:

var lat =(( $.browser.msie )
           ? $(this).find('geo\\:lat')
           : $(this.getElementsByTagNameNS('http://www.w3.org/2003/01/geo/wgs84_pos#','lat'))
         ).text();