谷歌地图API类型错误窗口.图像不是函数



我在一个旧的内容管理系统中运行了一个谷歌地图,该系统运行JScript前端,调用PHP API来满足请求。一切都很好,尽管在V3之后,谷歌地图API现在正在生产TypeError window.Image is not a function

以下跟踪来自谷歌Chrome浏览器

Uncaught TypeError: window.Image is not a function
k3  @   stats.js:2
Uncaught TypeError: window.Image is not a function
vB  @   util.js:9

这是加载地图的JScript

setMap: function(){ 
        this._map = new google.maps.Map(this._panel.mapcanvas, {
            zoom: 16,
            center: this._latlng
        });
    },

地图加载需要很长时间,不会缩放,不显示任何控件。Map在缩放级别16进行初始化,并以所提供的_latlng为中心。

如果我向地图选项添加任何其他控件,它们不会显示,也不会对地图进行任何更改。

window.Image问题也出现在初始负载上。

rg  @   js?key=YOURAPIKEY&callback=initMap:84

只是猜测:在页面的某个地方,将创建一个名为Image的全局变量(它不是函数)。

此变量覆盖内置函数Image()(maps-API尝试调用此函数)

演示:

      Image='something';
      function initialize() {
        var mapOptions = {
          center: new google.maps.LatLng(-34.397, 150.644),
          zoom: 8
        };
        var map = new google.maps.Map(document.getElementById("map-canvas"),
            mapOptions);
      }
      google.maps.event.addDomListener(window, 'load', initialize);
html ,body,#map-canvas { height: 100%; margin: 0; padding: 0 ;}
<div id="map-canvas"></div><script type="text/javascript"
      src="https://maps.googleapis.com/maps/api/js?v=3">
    </script>

解决方案:删除此变量的创建(例如,使用另一个名称),您永远不应该使用全局变量的名称,这些名称等于窗口对象的内置属性的名称

最新更新