gpt4 book ai didi

javascript - InvalidValueError : setMap: not an instance of Map, 而不是 StreetViewPanorama 的实例

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:47:58 29 4
gpt4 key购买 nike

当我跨浏览器测试我的站点并在 Safari 中尝试时,我的仪表板中的这个错误不知从何而来。它适用于 Chrome、Firefox 和 IE9,但适用于 Safari:

这是错误,我不知道这是哪里发生的

InvalidValueError: setMap: not an instance of Map, and not an instance of StreetViewPanorama     main:25

这是初始化函数:

var map;

function initialize() {

geocoder = new google.maps.Geocoder();
geocode = new google.maps.Geocoder();

LatLang = new google.maps.LatLng(38.50, -90.50);
var addresse = {
zoom: 4,
center: LatLang,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById('map'), addresse);

// Bounds for North America
var strictBounds = new google.maps.LatLngBounds(
new google.maps.LatLng(15.70, -160.50),
new google.maps.LatLng(68.85, -55.90));

// Listen for the dragend event
google.maps.event.addListener(map, 'dragend', function () {
if (strictBounds.contains(map.getCenter())) return;
// We're out of bounds - Move the map back within the bounds

var c = map.getCenter(),
x = c.lng(),
y = c.lat(),
maxX = strictBounds.getNorthEast().lng(),
maxY = strictBounds.getNorthEast().lat(),
minX = strictBounds.getSouthWest().lng(),
minY = strictBounds.getSouthWest().lat();

if (x < minX) x = minX;
if (x > maxX) x = maxX;
if (y < minY) y = minY;
if (y > maxY) y = maxY;

map.setCenter(new google.maps.LatLng(y, x));
});

// Limit the zoom level
google.maps.event.addListener(map, 'zoom_changed', function () {
if (map.getZoom() < minZoomLevel) map.setZoom(minZoomLevel);
});

}

最佳答案

你需要了解一些 safaris 和 javascripts quark 来解决这个问题。

var t = 5;
var t
console.log(t) //undefined in chrome, firefox, etc. But 5 in safari.

您还应该知道,在新的 html5 规范中,如果您有类似 <div id="map"></div> 的内容, 这会创建一个全局变量 mapwindow.map

在你的代码中我看到你有 map定义为全局变量(可能用于调试)。

如果此脚本在 <body>...</body> 之后运行呈现其中包含您的 <div id="map"></div> , window.map or(global map ) 初始化为 "<div id="map"></div>" ,当你再次声明 var map , map变成 <div id="map"></div>在 Safari 和undefined在其他浏览器中。

这是错误的原因。要解决此问题,请将 id 更改为 map 以外的其他内容,或者做 var map = "";当您将其声明为全局变量时。或者,在正文之前运行脚本。

关于javascript - InvalidValueError : setMap: not an instance of Map, 而不是 StreetViewPanorama 的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23905673/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com