2015-09-21 22 views
21

Tôi đã tìm kiếm sự cố này trên toàn bộ web và không ai trong số họ dường như cho tôi bất kỳ giải pháp nào. Tôi có một kịch bản đơn giản để chỉ hiển thị bản đồ của Nam Phi.API Google Maps: LoạiError: a is undefined

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="utf-8"> 
<meta http-equiv="x-ua-compatible" content="ie=edge, chrome=1" /> 
<title>Map Test</title> 
<script language="javascript" src="https://maps.googleapis.com/maps/api/js?sensor=true"></script> 
<style> 
#map-canvas { 
    height: 300px; 
    width: 980px; 
    margin: 0; 
    padding: 0; 
    margin-top: 10px; 
} 
</style> 
</head> 
<body> 
<div id="map-canvas" class="map_canvas"></div> 
<script type="text/javascript"> 
    function initialize() 
    { 
     var mapOptions = { 
      center: new google.maps.LatLng(-29.09958,26.18434), 
      zoom: 5, 
      mapTypeControlOptions: { 
       position: google.maps.ControlPosition.TOP_LEFT 
      } 
     }; 
     map = new google.maps.Map(document.getElementById('map-canvas'),mapOptions); 
    } 
    google.maps.event.addDomListener(window, 'load', initialize); 
</script> 
</body> 
</html> 

Nhưng tôi tiếp tục nhận được cùng một lỗi lặp đi lặp lại. Tôi thậm chí đã thử trên một máy chủ khác.

enter image description here

Xin giúp

+0

Tôi không thể sao chép vấn đề này bằng Chrome 44 ~ 45. Tôi thậm chí đã thử Firefox và không có lỗi. –

+0

@KimHonoridez, sự cố dường như không ảnh hưởng đến Chrome. Lỗi này liên tục xảy ra trong Firefox 41.0.1. –

Trả lời

46

Tôi cũng đã nhìn thấy lỗi này thường trong những ngày cuối cùng, dường như là một vấn đề với các API-phiên bản thử nghiệm.

tải việc phát hành phiên bản thay vì (về cơ bản bạn nên luôn luôn tải việc phát hành phiên bản trong sản xuất)

<script language="javascript" src="https://maps.googleapis.com/maps/api/js?sensor=true&v=3"></script> 
+0

Cảm ơn rất nhiều, bạn thay đổi ngày của tôi !!!! – Siick

+2

Tôi rất ngạc nhiên khi Google phân phối phiên bản thử nghiệm (ví dụ: không ổn định) theo mặc định. Tuy nhiên, thường là trường hợp: "Nếu bạn không chỉ định rõ phiên bản, bạn sẽ nhận được phiên bản thử nghiệm theo mặc định. Khách hàng API Google Maps for Work chỉ định ID ứng dụng sẽ nhận được phiên bản phát hành theo mặc định". (Từ https://developers.google.com/maps/documentation/javascript/versions) –

+0

Câu trả lời sẽ tải phiên bản "phát hành" mới nhất của API v3. Đối với một số ứng dụng, có thể thích hợp hơn để yêu cầu một phiên bản cụ thể (ví dụ 3.21). Xem "Các phương pháp hay nhất" của Google để biết thêm hướng dẫn: https://developers.google.com/maps/documentation/javascript/versions#best-practices –

1

Google Maps bắt đầu để thông qua lỗi khi tải kịch bản và các sự kiện liên lạc. Tôi đang sử dụng nó cho một ứng dụng cordova trên Android và iOS. enter image description here

Đây là những lỗi tôi nhận được nhưng thay đổi phiên bản tải không giải quyết được.

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=MYKEY&v=3.21&libraries=geometry,places"></script> 
+0

Tôi vừa mới nhận ra mình đang tải GMaps async khi thiết bị đang trực tuyến và ở đó tôi đã có URL không chính xác. Ở đây bạn đi, thứ bảy của tôi đi trong tôi là ngu ngốc. – Daniela

+0

Công việc tốt trong việc giải quyết nó và cảm ơn bạn đã đăng những phát hiện của bạn. Luôn luôn tốt để giúp đỡ người khác –

1

Phiên bản 3.30+ bị ảnh hưởng bởi sự cố này nếu có biến số toàn cầu được gọi là Map.

ví dụ:

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=YOURKEYHERE&v=3&callback=init" async defer></script> 
<script type="text/javascript"> 
    function init() { 
     Map.go(); 
    } 
    var Map = { 
     go: function() { 
      console.log("start engine"); 
     } 
    }; 
</script> 

Chúng tôi đã nhận lỗi này:

TypeError: a.prototype is undefined

Đổi tên window.Map sau đó mọi thứ diễn ra tốt đẹp.