【问题标题】:you have included the Google Maps API multiple times on this page. This may cause unexpected errors您已在此页面上多次包含 Google Maps API。这可能会导致意外错误
【发布时间】:2012-03-15 11:55:19
【问题描述】:

使用谷歌地图时出现两个错误:

  1. 警告:您已在此页面上多次包含 Google Maps API。这可能会导致意外错误。
  2. a 为空 (main.js)

我不知道这两者之间有没有联系,但最终结果是我的页面无法加载地图。

这是我的头标签:

<script type="text/javascript" src="../s/Jquery/jquery-1.6.1.min.js"></script>
<script type="text/javascript" src="../s/jquery.placeholder.min.js"></script>
<script type="text/javascript" src="../s/index.js"></script>
<script type="text/javascript" src="../s/Jquery/ui/jquery.ui.core.js"></script>
<script type="text/javascript" src="../s/Jquery/ui/jquery.ui.widget.js"></script>

<script type="text/javascript" src="../s/Jquery/ui/jquery.ui.position.js"></script>
<script type="text/javascript" src="../s/Jquery/ui/jquery.ui.autocomplete.js"></script>
<script src="../dd/markerclusterer_compiled.js" type="text/javascript"></script><script src="../dd/dealers_js.js" type="text/javascript"></script><script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>

这是我称之为谷歌地图的功能:

function set_google_map(set_region)
{

        var zoom;
        var center;
        switch (set_region) {
            case "usa":
                zoom = 3;
                center = new google.maps.LatLng(37.09, -95.71);
                break;
            case "europe":
                zoom = 3;
                center = new google.maps.LatLng(48.58, 7.71);
                break;
            case "east":
                zoom = 3;
                center = new google.maps.LatLng(31, 121);
                break;
            default:
                zoom = 1;
                center = new google.maps.LatLng(35, 5);
        }
        // Creating the map  
        map = new google.maps.Map(document.getElementById('map'), options);
        google.maps.event.addListener(map, 'click', function(){
            clean_icons();
            if (infowindow) 
                infowindow.close();
        });
        map.setCenter(center);
        map.setZoom(zoom);


            //bounds = new google.maps.LatLngBounds();  
}

这些是我的变量:

var UseridEncr;
var super_category="ATE";
var infowindow;
var map;
var bounds;
var image="../dd/i/green.png";
var image_active="../dd/i/red.png";
var mc ;
var location_changed=true;
var current_region="usa";
var mcOptions = {gridSize:30, maxZoom: 8};
var last_marker;
var last_marker_z;
var DealersData ;
var markers=[];
var markers_selected=[];
claster_markers=[];
var current_view=0;
myData={};
var selected_items=[];
var total_selected=0;

感谢您的及时回答。

【问题讨论】:

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


    【解决方案1】:

    我遇到了同样类型的问题。如果您的网页多次包含 ma​​ps api,就会出现这种情况。

    我已经检查了我的情况,有一个 .js 文件也在调用 ma​​ps api,所以请首先检查您是否包含多个 ma​​ps api时间,如果你是,删除那个。

    【讨论】:

      【解决方案2】:

      对于那些在运行时将 Google Map 脚本附加到 DOM 的人,您应该在下次重新附加之前删除 Google Map 的痕迹。

      您可以通过以下 2 个步骤卸载谷歌地图脚本:

      • 从 DOM 中删除谷歌地图脚本。
      • 从 BOM(窗口对象)中删除 google。

      示例

      
      declare var window;
      
      
      function removeGoogleMapScript() {
          console.debug('removing google script...');
          let keywords = ['maps.googleapis'];
      
          //Remove google from BOM (window object)
          window.google = undefined;
      
          //Remove google map scripts from DOM
          let scripts = document.head.getElementsByTagName("script");
          for (let i = scripts.length - 1; i >= 0; i--) {
              let scriptSource = scripts[i].getAttribute('src');
              if (scriptSource != null) {
                  if (keywords.filter(item => scriptSource.includes(item)).length) {
                      scripts[i].remove();
                      // scripts[i].parentNode.removeChild(scripts[i]);
                  }
              }
          }
      }
      
      
      function addGoogleMapScript() {
          removeGoogleMapScript();
          console.debug('adding google script...');
          let dynamicScripts = [`https://maps.googleapis.com/maps/api/js?v=quarterly&key=123yourApiKey`];
          for (let i = 0; i < dynamicScripts.length; i++) {
              let node = document.createElement('script');
              node.src = dynamicScripts[i];
              node.type = 'text/javascript';
              node.async = false;
              node.charset = 'utf-8';
              node.onload = uponFinishLoadingScript; //probably to initialise your map or something
              document.head.appendChild(node);
          }
      }
      
      

      【讨论】:

        【解决方案3】:

        这些文件中是否包含地图 API?

        <script src="../dd/markerclusterer_compiled.js" type="text/javascript"></script>
        <script src="../dd/dealers_js.js" type="text/javascript">
        

        【讨论】:

        • 您必须只能调用一次
        • 我只调用一次,使用这两个文件中的地图。
        • 我使用 收到错误,您已在此页面上多次包含 Google Maps API。这可能会导致意外错误我应该做任何建议吗??
        【解决方案4】:

        我遇到了同样的问题,我终于在functions.php文件中找到了导致问题的代码。

        // 自定义脚本和样式 //

        wp_enqueue_script( 'wpjobus-google-maps-script', 'https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false', array( 'jquery' ), '2013-07-18', true );
        

        我在上面添加了 api 密钥。 下面的代码就是最终的结果。

        // 自定义脚本和样式 // wp_enqueue_script('wpjobus-google-maps-script', 'https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&key=MY_API_KEY', array('jquery'), '2013-07-18', true);

        然后我删除了我之前添加到包含地图的页面标题的脚本,瞧!

        【讨论】:

          【解决方案5】:

          你为“选项”定义了什么

          map = new google.maps.Map(document.getElementById('map'), **options**);
          

          我没有在变量列表中看到它。

          搜索所有位置(假设您没有制作本地副本)。我相信您可能确实已将其添加到 Dealers_js.js 或经销商包含的其他文件中。

          吉姆

          【讨论】:

          • 这里是选项:var options = { disableDefaultUI: true, zoomControl: true, zoomControlOptions: { style: google.maps.ZoomControlStyle.SMALL }, navigationControl: false, scaleControl: true, mapTypeId: google .maps.MapTypeId.ROADMAP };
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-08-09
          • 1970-01-01
          • 2023-03-29
          相关资源
          最近更新 更多