2016-12-05 10 views
1

私はページロード時に自動的にhtmlのジオロケーションを取得しようとしていますが、動作しません。ドキュメントロードで関数が実行されないのはなぜですか?

<body > 
    <p id="demo">hi</p> 

</body> 

<script> 

$(document).ready(function() { 
    var x = document.getElementById("demo"); 
    if (navigator.geolocation) { 
     navigator.geolocation.getCurrentPosition(showPosition); 
    } else { 
     x.innerHTML = "Geolocation is not supported by this browser."; 
    } 
} 
function showPosition(position) { 
    x.innerHTML = "Latitude: " + position.coords.latitude + 
    "<br>Longitude: " + position.coords.longitude; 
}); 
</script> 

ご協力いただきまして誠にありがとうございます。

https://jsfiddle.net/bushido/dozay2mo/

+0

答え(および注意事項を確認し、彼らは重要です!) – Dekel

答えて

1

あなたは、構文エラーが発生しました。

これは修正です:

var x; 
 
$(document).ready(function() { 
 
    x = document.getElementById("demo"); 
 
    if (navigator.geolocation) { 
 
    navigator.geolocation.getCurrentPosition(showPosition); 
 
    } else { 
 
    x.innerHTML = "Geolocation is not supported by this browser."; 
 
    } 
 
}); 
 
function showPosition(position) { 
 
    x.innerHTML = "Latitude: " + position.coords.latitude + 
 
    "<br>Longitude: " + position.coords.longitude; 
 
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p id="demo">hi</p>

注:
1.あなたはjQueryライブラリをロードを確認する必要があります。
2.近代的なブラウザのgetCurrentPositionでは、SSL(https://)を使用する必要があるため、ウェブサイトにSSLがない場合は機能しません。
3. x変数には、ローカル変数だった(そのための唯一のreadyブロックの内側ではなく、showPosition関数内利用可能でした。

+0

私は構文エラーがあったし、あなたのおかげでそれを修正した後、アクセス許可のプロンプトが表示されますが、まだコンテナに座標を入れていません編集:ブラウザはSSL(最新のFirefox) $(document).on(click .... – Danny

+0

@DanielAlexander、更新をチェックしましたか? – Dekel

+0

おかげさまで友人に感謝しました。xはローカルでのみ定義されているので、アクセスできませんでした。編集:もちろんそれは私が行うことができる最小です – Danny

関連する問題