Маркеровщик не работает только в WebKit (Chrome and Safari), хорошо в Firefox?
-
28-09-2019 - |
Вопрос
Это сводит меня умственным.
Я использую MarkerCluster с Google Maps V3, и он отлично работает в FF, однако, когда я (и клиент) выбиваю его в Chrome или Safari, кластеры не там.
Нет ошибок, просто не работающих в WebKit.
Несколько примечаний: он приходит от какого-то jack, загруженного json, и это в jQuery.
Это функция, заботясь о добавлении:
add_clusters: function() {
markers = [];
$.each( interpreters, function ( i, interpreter ){
//maps.add_postcode_marker(i, 'interpreter');
var latLng = new google.maps.LatLng(interpreter.lat, interpreter.lng);
//, map: map
interpreters[i].marker = new google.maps.Marker({ position: latLng });
maps.add_info_box(i, "interpter");
markers.push(interpreters[i].marker);
app.log(interpreters[i].marker);
});
markerCluster = new MarkerClusterer(map, markers);
}
Ваше здоровье!
Просто до подтверждения, в Chrome нет ошибок, он просто не отображается.
Решение
Проблема была с самой MakerCluster.
Строка 725 конкретно. Был также включен jQuery, и поведение .indexof немного изменено между браузерами.
В Firefox это возвращалось правильно -1.
Однако Chrome возвращался неопределенным.
Вы можете исправить это, меняя строку 725 на ...
return this.markers_.indexOf(marker) != -1 && this.markers_.indexOf(marker) != undefined;
Другие советы
На взгляд, я не вижу, что не так с этим фрагментом. Все выглядит хорошо для меня.
Вы можете использовать jsfiddle.net. Чтобы создать страницу, которая содержит рабочую демо (в Firefox), чтобы мы могли видеть это / попытаться редактировать его на себя?
У меня была похожая проблема с открытыми. Решение было, чтобы убедиться, что Mimetype ответ text/html
.