php - 为什么谷歌地图代码阻止了我的其他 js 脚本?

标签 php javascript

就像标题一样 - 为什么谷歌地图代码阻止我的其他js脚本?我在标题中有以下代码:

<script type="text/javascript">

  /* Sets up the map with markers */
  function starter() 
  {
    var latlng = new google.maps.LatLng(38.60427939057251, -9.07470703125);

    var myOptions = {
      zoom: 4,
      center: latlng,
      navigationControl: true,
      scaleControl: false,
      mapTypeId: google.maps.MapTypeId.ROADMAP
  };

    var map = new google.maps.Map(document.getElementById("tab14"), myOptions);

      /* Sets up markers */    
      markers = []; 

      infoWindow = new google.maps.InfoWindow();              

      for (var i = 0, coordinates; coordinates = data.coords[i]; i++) 
      {             
                  var iconImage = new google.maps.MarkerImage("http://map.lgfl.org.uk/images/arrow_green.png");
                  var LatLng = new google.maps.LatLng(coordinates.latitude, coordinates.longitude);
                  var marker = new google.maps.Marker({position: LatLng, icon: iconImage });

                  var contentString = '<div>'+ 
                                      '<a href='+coordinates.url+'><h4>'+coordinates.title+'</h4></a>'+
                                      '<div>'+
                                      '<p><a href='+coordinates.url+'>'+coordinates.excerpt+'</a></p>'+
                                      '</div>'+
                                      '</div>';

                  addMarker(marker, contentString);
                  markers.push(marker);
      }

      /* Sets up marker clusterer */
      var markerCluster = new MarkerClusterer(map, markers); 

      function addMarker(marker, content)
      {
         google.maps.event.addListener(marker, 'click', function() {
                         infoWindow.setContent(content);
                         infoWindow.open(map, marker);
         });
      }

  }

window.onload = starter;
</script>

现在,当我想包含任何其他 js 代码以在页面上执行不同的操作时,由于此代码,它不会执行此操作。当我注释掉 window.onload = starter 行时,一切正常。有人可以告诉我我在这里做错了什么吗?

最佳答案

确保您的 starter 函数中没有任何错误,很可能是您的 map Canvas (您没有具有此 ID 的元素):

document.getElementById("tab14")

或者您的数据对象:

for (var i = 0, coordinates; coordinates = data.coords[i]; i++)

我不明白你在哪里设置这个。

编辑:
根据您问题的评论,您似乎正在覆盖 onload 方法,这根本不起作用:

window.onload = func1;
window.onload = func2;

这只会执行 func2 方法!
试试这个:

function func1() {
  alert("This is the first.");
}

function func2() {
  alert("This is the second.");
}


function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}

addLoadEvent(func1);
addLoadEvent(func2);

addLoadEvent(function() {
    document.body.style.backgroundColor = '#EFDF95';
})

SOURCE .

关于php - 为什么谷歌地图代码阻止了我的其他 js 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4714403/

相关文章:

javascript - vue js v-for 指令中的函数调用使循环进入无限循环,我不知道为什么

javascript - 压缩多个IF语句

php - 从 MySQL 获取密码哈希

php - 通过向多个买家出售商品来找到最高总价,受用户输入限制,可以进行多少次单独销售

javascript - ExtJS 循环模板

javascript - 如何清理未使用的 indexeddb 数据库

javascript - Javascript 中的表格 - 隐藏/显示列

javascript - 如果 HTML、CSS 和 Javascript 是客户端,为什么它们是 PHP 文件的组件?

php - 比较一个数组中的数组值 PHP

php - 如何使用 PDO 检查 mySQL 中的行是否为空?