为什么我得到 'window.initMarkers is not a function'

Why am I getting 'window.initMarkers is not a function'

我正在尝试使用 JSFiddle 异步加载 Google 地图,但我一直收到 window.initMarkers is not a function 错误。

有人遇到了同样的问题,他们通过将其移到外面 $(document).ready() 解决了这个问题。但是我需要使用 jQuery。

那么有谁知道我怎样才能做到这一点? My fiddle here.

var map;

var GoogleMaps = {
    loadGoogleMapScript: function (callback) {
      (...)
      script.src = 'https://maps.googl...sensor=false&callback=' + callback;        
    },

    setMarkers: function (stores) {
       (...)
    }
};

function initMarkers(){
    var stores = [
        ['Store 1', 59.9136813, 10.7421917],
        ['Store 2', 59.9136287, 10.7419084],
    ];
    GoogleMaps.setMarkers(stores);    
}


GoogleMaps.loadGoogleMapScript('initMarkers');

这是范围问题

改变

function initMarkers(){ ...

window.initMarkers = function() { ...

这使得 initMarkers 成为一个全局函数,它可以被加载的 google 脚本中的 "callback" 运行。像这样声明的函数

function initMarkers() { ...

里面 document.ready 不是全局范围的