Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   скрипт, загружаемый с файлом в div не работает. (https://javascript.ru/forum/jquery/50186-skript-zagruzhaemyjj-s-fajjlom-v-div-ne-rabotaet.html)

ask67 16.09.2014 06:13

скрипт, загружаемый с файлом в div не работает.
 
Здравствуйте уважаемые друзья. Такая проблема:

раньше я использовал карту гугл, с соответсвующим скриптом. все работало. Сейчас я загружаю этот же (почти, без начальных и конечных тегов) файл в <div> на странице, чтобы не было перезагрузки. Все идет нормально, все параметры и файлы принимаются, а вот карта не показывается. В чем проблема?

<body onload="initialize()" onunload="GUnload()">



    <script src="http://maps.googleapis.com/maps/api/js?key=AIzaSyCWaxpCgZ9xIECrYGErCRls9aIeAV9aGDM&sensor=false"
            type="text/javascript"></script>
    <script type="text/javascript">

    function initialize() {
		alert ("asasasasas"); // тестовая строка - до нее не доходит
		var myLatlng = new google.maps.LatLng(40,40);
		var mapOptions = {
			center: myLatlng,
			zoom: 5,
			mapTypeId: google.maps.MapTypeId.TERRAIN,
			streetViewControl: false
			};
        var map = new google.maps.Map(document.getElementById("map_canvas"),mapOptions);
		var marker = new google.maps.Marker({
			position: myLatlng,
			map: map,
			draggable: true });
		
		google.maps.event.addListener(marker, "dragend", function() { // как только перетащили
		document.getElementById('spot-lat').value = marker.getPosition().lat(); // переписываем широту
   		document.getElementById('spot-longi').value = marker.getPosition().lng(); // и долготу
		});
		document.getElementById('spot-lat').value 	= 40; 
		document.getElementById('spot-longi').value = 40; 
 	 }
    </script>

<div id="map_canvas" style="width: 640px; height: 480px"></div>
<p>
<input type="text" name="lat" id="spot-lat" value="" />
<input type="text" name="longi" id="spot-longi" value="" />
</p>	
</BODY>


поставил тестовую строку alert ("asasasasas"); до нее не доходит, то есть функция не запускается, событие onload не происходит

пытался убрать тег body, и исполнение функции привязать к готовности док-та $(document).ready(function (){......}), но бесполезно.

к какому событию привязаться? или может быть есть другое решение?

krasovsky 16.09.2014 08:03

Во первых - смотрим в консоль на предмет ошибок.
Во вторых как ты вызываешь функцию initialize() и ты вообще вызываешь ее?
В третьих у тебя вставляется два скрипта - гугл либа и сразу же ее вызов, а что если она еще не загрузилась? Правильно,ошибка. Либу переместить в head а во втором скрипте после объявления функции initialize - сразу ее вызов initialize();

ask67 16.09.2014 08:16

Спасибо за ответ.

1. консоль ошибок не дает. сам файл отрабатывает нормально (без загрузки в блок).
2. функцию вызываю <body onload="initialize()" onunload="GUnload()">, не в блоке, она вызывается.
3. сейчас попробую сразу вызвать после объявления.

ask67 16.09.2014 08:22

alert выскакивает до объявления переменных, но даже уже после
var myLatlng = new google.maps.LatLng(40,40);
ничего не происходит.

видимо проблема в вызове гугловских методов.

ask67 16.09.2014 08:30

перенес строку
<script src="http://maps.googleapis.com/maps/api/js?key=aGDM&sensor=false"
06 type="text/javascript"></script>

в вызывающий файл и все заработало. Спасибо krasovsky


Часовой пояс GMT +3, время: 09:40.