2012-05-09 132 views
1

我试图显示一个谷歌地图的模式使用fancybox谷歌地图的地图,但它使所有的请求谷歌地图Web服务,但不渲染地图。 继承人我的代码谷歌地图不渲染

function show_map(options) { 
     var html = '<div id="map-canvas" style="width:100%; height=100%"></div>'; 
     $.fancybox({ 
      'width':550, 
      'height':450, 
      'content':html, 
      'modal' : false, 
      'transitionIn' : 'none', 
      'transitionOut': 'none', 
      'speedIn' : 300, 
      'speedOut' : 300, 
      'autoScale' : false, 
      'scrolling' : 'no', 
      'centerOnScroll':true, 
      'onComplete':function() 
      { 
       var myOptions = { 
       center: new google.maps.LatLng(options.lat,options.lng), 
       zoom: 8, 
       mapTypeId: google.maps.MapTypeId.ROADMAP 
      }; 
      var map = new google.maps.Map(document.getElementById("map-canvas"), myOptions); 
      } 
     }) 
    } 

当我检查使用Chrome浏览器的DOM查看器,我看到的模态生成的HTML,但地图上没有显示。 什么可能是错的?

回答

1

您似乎不会将map-canvas元素添加到dom中。所以GoogleMap API找不到它。请尝试以下操作:

var mapCanvas = document.createElement('div'); 
mapCanvas.setAttribute('id','map-canvas'); 
mapCanvas.setAttribute('style','width:100%; height=100%'); 

document.getElementById('divParentContainer').appendChild(mapCanvas); 

与作为父母你的DIV容器的id更换divParentContainer

+0

欢迎您! –