我只在需要时加载Google地图。在我重构我的代码之前,它的工作原理如下:
function initialize_map_brand() {
(...)
}
jQuery(document).ready(function ($) {
load_google_map('initialize_map_brand');
});
重构后,我的代码如下所示:
lib = {
loadGoogleMapScript: function(_callback) {
(...)
script.src = 'http://maps.google.com/maps/api/js?sensor=false&callback=' +_callback;
}
}
Page = {
viewPage: {
init: function() {
lib.loadGoogleMapScript(self.initialize_map);
},
initialize_map: function() {
var locations = [ (...)
}
}
}
jQuery(document).ready(function ($) {
Page.viewBPage.init();
});
现在我收到了这个错误:
" NetworkError:400错误请求 - http://maps.google.com/maps/api/js?sensor=false&callback=function%20()%20 {VAR%20locations%20 = 20%[[%....
它似乎需要整个功能代码并将其传递到网址中。那么如何使用我的新代码正确加载Google Maps脚本?
答案 0 :(得分:2)
根据documentation您需要为url callback
参数提供一个字符串,其中包含全局范围内函数的名称。
您将函数作为参数传递,因此函数体将附加到url。
var Page = {
viewPage: {
init: function() {
lib.loadGoogleMapScript('Page.viewPage.initialize_map');
},
initialize_map: function() {
}
}
};
window.Page = Page;