懒加载google maps api v3 jQuery回调

我懒得加载谷歌地图api v3 javascript

该文档说明了如何在脚本加载时将作为函数名称的回调参数作为回调参数执行。

$(document).ready(function(){ var s = document.createElement("script"); s.type = "text/javascript"; s.src = "http://maps.google.com/maps/api/js?v=3&sensor=true&callback=gmap_draw"; $("head").append(s); }); 

所以我必须定义gmap_draw()函数。

当我将此函数包含在domready块中时,它是不可见的。

这个问题的任何变通方法? (除了将function放在domready块之外)

因为回调必须是全局的,所以你可以通过从ready处理程序中访问window来创建一个回调。

 $(document).ready(function(){ var s = document.createElement("script"); s.type = "text/javascript"; s.src = "http://maps.google.com/maps/api/js?v=3&sensor=true&callback=gmap_draw"; window.gmap_draw = function(){ alert ("Callback code here"); }; $("head").append(s); }); 

另一种选择是使用Google Loader :

 $.getScript('https://www.google.com/jsapi', function() { google.load('maps', '3', { other_params: 'sensor=false', callback: function() { // Callback code here }}); });