Манипулировать маркером карты Google в родительском окне из iframe на той же странице

#jquery #jquery-ui #google-maps #dom #fancybox

#jquery #jquery-пользовательский интерфейс #google-карты #dom #fancybox

Вопрос:

Я запускаю следующий JavaScript изнутри <script> элемента для инициализации карты Google на странице, которую я загружаю на вкладке пользовательского интерфейса jQuery через AJAX:

 var tab_index = $('#tabs').tabs('option', 'selected');

var myOptions = {
    zoom: 8,
    center: new google.maps.LatLng(18.735693,-70.162651),
    mapTypeId: 'roadmap',
    mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU}
}

MapID = $('.site_map:visible').attr('id');

if (MapID !== 'map-new') {
    var map_id = 'map-' tab_index;
    $('.site_map:visible').attr('id', map_id);
    var tab_map = new google.maps.Map(document.getElementById(map_id), myOptions);
    placeMarker($('.site_details:visible .inpLat').val(), $('.site_details:visible .inpLng').val(), tab_map);
}
  

После этого я загружаю iframe через Fancybox. Я получаю две переменные из фрейма Fancybox iframe, которые я передаю скрытым входам в родительском окне (содержащем вкладку с картой) следующим образом:

 $('form:visible .inpLat', window.parent.document).val(myCoords.lat());
$('form:visible .inpLng', window.parent.document).val(myCoords.lng());
  

Мой вопрос в том, как я могу передать эти две переменные на карту на родительской странице и использовать их для обновления местоположения маркера на карте?

Ответ №1:

Я понял это; оказывается, вы можете ссылаться на функцию, доступную для родительской страницы, поместив parent. перед ней вот так:

 parent.placeMarker(myCoords.lat(), myCoords.lng());