该功能不在外部文件中运行

时间:2017-02-09 16:18:11

标签: javascript wordpress google-maps-api-3

我使用google maps api在wordpress页面上工作。

我的文件功能:

function liceoucatolica_estilo() {

    // API google maps
    wp_enqueue_script('maps', 'https://maps.googleapis.com/maps/api/js?key=AIzaSyAJq5xO31rYRAqv5h6yUZTOaHwDX2zjNlo&callback=initMap', array(), false);

    // Cargar scripts
    wp_enqueue_script('main', get_template_directory_uri() . '/js/main.js',null,false);

}
add_action( 'wp_enqueue_scripts','liceoucatolica_estilo');

我的文件main.js(其中是地图的功能):

window.onload = function(){ 

  function initMap(){
  var campus = {lat: 4.634241, lng: -74.068513};

    // Create a map object and specify the DOM element for display.
    var map = new google.maps.Map(document.getElementById('mi_mapa'), {
        center: campus,
        scrollwheel: false,
        zoom: 17
    });

    var marker = new google.maps.Marker({
        position: campus,
        map: map,
        title: 'Liceo de la Universidad Católica'
    }); 
  }

};

如果我在页眉或页脚中复制该函数,如果它有效,但是如果我只将它留在Main.js中则不起作用

1 个答案:

答案 0 :(得分:0)

可能有两个原因:

1.-当window.onload事件已经发生时,您正在声明该函数,因此它会继续侦听永远不会发生的事情。

2.- Google地图的脚本会在你有机会宣布职能initMap之前解决。

我尝试切换脚本的顺序,然后删除window.onload。只需在全局范围内声明initMap函数。