2

数日間、この問題と戦っています。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();

助けてくれてありがとう

4

1 に答える 1

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();
于 2012-06-30T23:24:06.033 に答える