2017-03-16 21 views
0

では動作しません:ジオロケーションは、私はこのコードを持っているシンプルなJS

document.querySelector("#posBtn").addEventListener("click", function() { navigator.geolocation.getCurrentPosition(PositionFunction); }); 

function PositionFunction(p) { 

    console.log(p.coords.longitude); 
} 

それはとても簡単なようだが、それは動作しません。どうして?

+0

エラーをデバッグするためのコールバック関数を追加してください。ここを参照してくださいhttps://developer.mozilla.org/en-US/docs/Web/API/Geolocation/getCurrentPosition – sking

答えて

0

正常に動作しているようです。あなたが得ようとしているのは、GeoLocationがHTTPでサポートされていないという警告です。HTTPSが機能するためには、HTTPSが必要です。

getCurrentPosition()およびwatchPosition()は、安全でない起点では動作しません。この機能を使用するには、アプリケーションをHTTPSなどの安全な起点に切り替えることを検討する必要があります。

document.querySelector("#posBtn").addEventListener("click", function() { navigator.geolocation.getCurrentPosition(PositionFunction); }); 
 

 
function PositionFunction(p) { 
 

 
    console.log(p.coords.longitude); 
 
}
<button id="posBtn"> 
 
Get Longitude 
 
</button>

詳細here

ここで働いてexample of your code

0

そのが

document.querySelector("#posBtn").addEventListener("click",function(){ 
     if (navigator.geolocation) { 
       navigator.geolocation.getCurrentPosition(PositionFunction, showError); 
      } else { 
       console.log("Geolocation is not supported by this browser."); 
      } 

     }); 

     function PositionFunction(p) { 
     console.log(p.coords.longitude); 
     }; 

     function showError(error) { 
     switch(error.code) { 
      case error.PERMISSION_DENIED: 
       console.log("User denied the request for Geolocation."); 
       break; 
      case error.POSITION_UNAVAILABLE: 
       console.log("Location information is unavailable."); 
       break; 
      case error.TIMEOUT: 
       console.log("The request to get user location timed out."); 
       break; 
      case error.UNKNOWN_ERROR: 
       console.log("An unknown error occurred."); 
       break; 
     } 
    } 
を働いていない理由を知るために、エラーをキャプチャするようにしてくださいです210

実際の例を確認してください:https://jsfiddle.net/ozmsq23w/6/

+0

エラーはありません –

関連する問題