2016-01-26 2 views
0

привет, я использую окно javascript onload на моей странице с содержимым карты google.окно при загрузке 1 раз

Если я перемещаю маркер, активна загрузка окна, но она по-прежнему загружается только не один раз, я хочу сделать это всего 1 раз.

вот код:

function initialize() { 
 
    var latitude =<?php echo $this->input("lat")->getData();?>; 
 
    var longitude =<?php echo $this->input("long")->getData();?>; 
 
    if(latitude == ""){ 
 
     latitude = -6.2297465; 
 
     longitude = 106.829518; 
 
    } 
 
    var latlng = new google.maps.LatLng(latitude, longitude); 
 
    var map = new google.maps.Map(document.getElementById('mapAgen<?php echo $idUnik;?>'), { 
 
     center: latlng, 
 
     zoom: 11, 
 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
 
    }); 
 
    var marker = new google.maps.Marker({ 
 
     position: latlng, 
 
     map: map, 
 
     title: 'Set lat/lon values for this property', 
 
     icon : 'map-marker-shadow_2.png', 
 
     <?php if($this->editmode) { ?> 
 
     draggable: true 
 
     <?php }else{ ?> 
 
     draggable: false 
 
     <?php } ?> 
 
    }); 
 
    google.maps.event.addListener(marker, 'dragend', function(a) { 
 
     setCookie("latitude", a.latLng.lat().toFixed(4),1); 
 
     setCookie("longitude", a.latLng.lng().toFixed(4),1); 
 

 
     $.ajax({ 
 
      type: 'POST', 
 
      url: location.href, 
 
      async : true, 
 
      data: { 
 
      latitude : a.latLng.lat().toFixed(4), 
 
      longitude : a.latLng.lng().toFixed(4) 
 
      }, 
 
      success: function(message) { 
 

 
       window.location.href=window.location.href; 
 

 
      } 
 
     }); 
 
     console.log(a.latLng.lat().toFixed(4)); 
 

 
     function setCookie(cname, cvalue, exdays) { 
 
      var d = new Date(); 
 
      d.setTime(d.getTime() + (exdays*24*60*60*1000)); 
 
      var expires = "expires="+d.toUTCString(); 
 
      document.cookie = cname + "=" + cvalue + "; " + expires; 
 
     } 
 
    }); 
 
}; 
 
window.onload = initialize();

+1

'window.location.href = window.location.href;' перезагружает страницу - что вы делаете на "dragend" –

+0

да это правда, и я Думаю, @JaromandaX не потому, что проблема с загрузкой окна, но это потому, что этот скрипт window.location.href = window.location.href; , любая идея, как сделать это просто загрузить 1 раз, если я перетащить маркер? –

+0

Что произойдет, если вы ** уберите ** эту строку? –

ответ

1

Возможное решение: установить значение LocalStorage ложь. Затем initialize() может выполняться условно только один раз, независимо от того, сколько раз загружается файл window.location.href, до тех пор, пока не будет очищен localStorage/cache.

Пример:

if (localStorage.getItem("isLoaded") === null) { 
    localStorage.setItem("isLoaded", "0"); 
}  

function initialize() { 

    if (localStorage.getItem("isLoaded") === "0") { 
     localStorage.setItem("isLoaded", "1"); 

     // Rest of the original initialize() code here. 
    } 
} 

window.onload = initialize; 

https://jsfiddle.net/93hzexvn/3/

+0

Вы понимаете проблему с 'window.onload = initialize();' –

+0

Я действительно плохо понимаю проблему, если честно - я думал, что сделал, но ответы меня смутили больше –

+0

Я пробую это и google map не отображается –

Смежные вопросы