Trước khi bạn trả lời: đây không phải là con chim thẳng như bạn mong đợi!jquery: làm thế nào tôi có thể tải API Google Maps qua ajax?
- Tôi có một 'hiển thị trên bản đồ' nút mà khi nhấp mở ra một DialogBox/lightbox với bản đồ google trong.
- Tôi không muốn để nạp api bản đồ trên pageload, chỉ khi bản đồ đã được yêu cầu
Đây là tập tin php sự "hiển thị trên bản đồ" nút đặt vào hộp thoại:
<div id="map_canvas"></div>
<script type="text/javascript">
$(function() {
//google maps stuff
var latlng = new google.maps.LatLng(<?php echo $coords ?>);
var options = {
zoom: 14,
center: latlng,
mapTypeControl: false,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById('map_canvas'), options);
var marker = new google.maps.Marker({
position: new google.maps.LatLng(<?php echo $coords ?>),
map: map
});
})
</script>
Tôi đã cố gắng để tải API trước ajaxing trong hộp thoại như thế này:
$('img.map').click(function(){
var rel = $(this).attr('rel');
$.getScript('http://maps.google.com/maps/api/js?sensor=false', function(){
$.fn.colorbox({
href:rel
})
});
})
này dường như không làm việc :(
tôi cũng đã cố gắng :
- thêm
<script src="http://maps.google.com/maps/api/js?sensor=false"></script>
vào file ajax - type = "text/javascript" chạy
$.getScript('http://maps.google.com/maps/api/js?sensor=false');
trên doc.ready
vấn đề trình duyệt có vẻ được chuyển hướng đến các tập tin api.js - bạn sẽ thấy một màn hình trắng
mát. Hoặc bạn có thể có ít nhất sửa đổi mã ban đầu của bạn bằng cách sử dụng getJSON, như tôi đã chỉ ra trong câu trả lời cập nhật của tôi. – Andrew