Вы включили API Google Maps несколько раз на этой странице. Это может вызвать непредвиденные ошибки
Я получаю две ошибки при использовании карты google:
- Предупреждение: вы включили API Карт Google несколько раз на этой странице. Это может вызвать непредвиденные ошибки.
- a имеет значение null (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>
вот функция, которую я называю google map:
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;
спасибо за ваш быстрый ответ.
Ответы
Ответ 1
Я столкнулся с тем же типом проблемы. Это происходит, если ваша веб-страница, включая отображает api более одного раза.
Я проверил в моем случае, был файл .js
, который также вызывал maps api, поэтому сначала проверьте, включаете ли вы карты api более одного время, если вы, удалите его.
Ответ 2
В любой из этих файлов входит API-интерфейс карты
<script src="../dd/markerclusterer_compiled.js" type="text/javascript"></script>
<script src="../dd/dealers_js.js" type="text/javascript">
Ответ 3
У меня была такая же точная проблема, я, наконец, нашел код, вызывающий проблему в файле 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 к вышеперечисленному.
Конечный результат был приведен ниже.
//Пользовательские скрипты ans styles// 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);
Затем я удалил script, который я ранее добавил в заголовок страницы с картой и вуалой!
Ответ 4
Что вы определили для "параметров"
map = new google.maps.Map(document.getElementById('map'), **options**);
Я не вижу его в списке переменных.
Найдите все местоположения (предположим, что вы не сделали локальную копию). Я полагаю, вы, вероятно, добавили его в dealers_js.js или в другой файл, в который входят дилеры.
Джим
Ответ 5
Для тех, кто добавляет сценарий Google Map к DOM во время выполнения, вы должны удалить следы Google Map, прежде чем повторно добавлять в следующий раз.
Вы можете выгрузить скрипт Google Map, выполнив 2 шага:
- Удалите скрипты Google Map из DOM.
- Удалить Google из спецификации (оконный объект).
JS код для достижения:
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);
}
}