2

谷歌分析能夠使用JavaScript庫查找訪問者位置。這怎麼可以用javascript完成?如何使用javascript查找網站訪問者位置?

+1

http://stackoverflow.com/questions/3489460/how-to-get-visitors-location-ie-country-using-javascript-geolocation –

+0

[也在該酮](HTTP:// WWW .opal-creations.co.uk /博客/免費的腳本和代碼/ GET-A-遊客-位置與JavaScript的)。 –

回答

2

navigator.geolocation對象是您向用戶代理詢問其位置的方式。根據UA的設置,這可能會或可能不會提示用戶允許/拒絕發送數據。此外,地理定位數據本身的精確度可能會非常變化(儘管如此,它們會給您一個裕量或誤差,因此您可以將其考慮在內)。

if (navigator.geolocation) { 
    navigator.geolocation.getPosition(
     successFunction, 
     failureFunction 
    ); 
} else { 
    noGeolocationFunction(); 
}; 

還有一個watchPosition方法。兩者都是異步的,所以你傳遞成功/失敗函數來處理返回的對象。

+0

注意:此方法將要求訪問者獲得許可。你可以嘗試使用這種方法[這裏](http://www.w3schools.com/html/html5_geolocation.asp)。 – Micah

+0

正確,正如答案的第二句所述。但在大多數情況下,它具有高精度的優勢 - 如果您需要比國家更特定的任何東西,尤其是美國以外的國家,則不能依賴基於IP的嗅探。這個問題沒有說明他們需要得到多麼具體,但是如果他們想要使用該位置來提供指導,那麼IP查找是不夠的。 – Semicolon

1

谷歌有一個查詢訪問者位置的API。 Find web visitor's location automatically with javascript and Google APIs

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
    <head> 
     <title>Get web visitor's location</title> 
     <meta name="robots" value="none" /> 
    </head> 
    <body> 
    <div id="yourinfo"></div> 
    <script type="text/javascript" src="http://www.google.com/jsapi?key=[apikey]"></script> 
    <script type="text/javascript"> 
     if(google.loader.ClientLocation) 
     { 
      visitor_lat = google.loader.ClientLocation.latitude; 
      visitor_lon = google.loader.ClientLocation.longitude; 
      visitor_city = google.loader.ClientLocation.address.city; 
      visitor_region = google.loader.ClientLocation.address.region; 
      visitor_country = google.loader.ClientLocation.address.country; 
      visitor_countrycode = google.loader.ClientLocation.address.country_code; 
      document.getElementById('yourinfo').innerHTML = '<p>Lat/Lon: ' + visitor_lat + '/' + visitor_lon + '</p><p>Location: ' + visitor_city + ', ' + visitor_region + ', ' + visitor_country + ' (' + visitor_countrycode + ')</p>'; 
     } 
     else 
     { 
      document.getElementById('yourinfo').innerHTML = '<p>Whoops!</p>'; 
     } 
    </script> 
    </body> 
</html> 
相關問題