geolocation.getCurrentPosition

Failure response is cached when user updates their location settings, unless the page is refreshed.

HTML

<script src="https://maps.google.com/maps/api/js?sensor=false"></script>
<a href="" id="clickme">Click me to Auto Detect</a>
<br/>
<div id="uAddress">

</div>

JavaScript

$(document).ready(function() {
    $('#clickme').on('click', function() {
        navigator.geolocation.getCurrentPosition(
            function(position) {
        displayGeoAddress(position.coords.latitude, position.coords.longitude)
			},
			function(error) {
				console.log('failure');
			},
			{
				timeout: 5000,
				maximumAge: 0,
				enableHighAccuracy: true
			}
		);      
        
        return false;
    });
    
function displayGeoAddress(lat, lon){
	console.log(lat, lon)
    geocoder = new google.maps.Geocoder();
		var latlng = new google.maps.LatLng(lat, lon);
    geocoder.geocode({ 'latLng': latlng }, function (results, status) {
      if (status == google.maps.GeocoderStatus.OK) {
        console.log(results[1].formatted_address);
      	element = document.getElementById("uAddress");
        console.log(element);
        if (results[1]) {
          element.innerHTML = results[1].formatted_address;
        } else {
          element.innerHTML = 'Location not found';
        }
      } else {
        element.innerHTML = 'Geocoder failed due to: ' + status;
      }
    });
}
});