【问题标题】:Google Places API not working in FirefoxGoogle Places API 在 Firefox 中不起作用
【发布时间】:2012-12-30 05:25:10
【问题描述】:

我在这里完全不知所措。 我使用 Google Places API 和 Google Maps Javascript API v3 来显示带有地址、电话号码等的商业地图...... 我在 Webkit 上开发了网站……然后我发现它在 Firefox 中不起作用…… 这是我的代码:

function initialize() {
var e = document.getElementById('place_reference')
if (e) {
    var place_reference = document.getElementById('place_reference').innerText;
}
var request = {
  reference: place_reference
};
service = new google.maps.places.PlacesService(document.getElementById('map_canvas'));
service.getDetails(request, callback);

function callback(place, status) {
  console.log(status);
  if (status == google.maps.places.PlacesServiceStatus.OK) {
    document.getElementById('loading').style.display = 'none';
    if (document.getElementById('place_address').innerText == '') {
        document.getElementById('place_address').innerText = place.formatted_address;
    }
    if (document.getElementById('place_phone').innerText == '') {
        document.getElementById('place_phone').innerText = place.international_phone_number;
    }
    if (document.getElementById('place_website').innerHTML == '') {
        document.getElementById('place_website').innerHTML = '<a href="' + place.website + '"target="_blank">' + place.website + '</a>';
    }  
    var place = place.geometry.location;
    var marker;
    var map;
    var mapOptions = {
      zoom: 16,
      mapTypeId: google.maps.MapTypeId.ROADMAP,
      disableDefaultUI: true,
      scrollwheel: false,
      center: place
    };
    map = new google.maps.Map(document.getElementById('map_canvas'),
            mapOptions);
    marker = new google.maps.Marker({
      map: map,
      draggable: false,
      animation: google.maps.Animation.DROP,
      position: place
    });
  }
}
}

在 Firefox 上,状态返回 INVALID_REQUEST,而在其他浏览器上,它返回 OK

我真的需要帮助来解决这个问题。您可以在这个地址查看网站:http://social-e.laclinique.biz/en/blog/shops/noel-eternel

【问题讨论】:

    标签: javascript firefox google-maps-api-3 google-places-api


    【解决方案1】:

    问题就在这里:

     var place_reference = document.getElementById('place_reference').innerText;
    

    FF不支持innerText,使用例如:

     var place_reference = document.getElementById('place_reference').firstChild.nodeValue
    

    (或)

     var place_reference = document.getElementById('place_reference').innerHTML;
    

    【讨论】:

    • 天哪。我觉得那里很愚蠢,但你是对的!下次我会仔细检查 DOM。顺便说一句,您的建议中有一个错字:firstChild。加油!
    猜你喜欢
    • 2015-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-22
    相关资源
    最近更新 更多