闲逛几天知道。学习javascript和jquery几个星期,它很顺利,但有时候......
对于移动应用,我正在尝试获取坐标。在页面上显示它们不是问题,但我希望它们在其他地方。
在main.js
中var getLocation = function() {
var suc = function(p) {
document.getElementById("locatie").innerHTML = "http://www.192.168.1.111/tools/gpslocation.php?lat=" + p.coords.latitude + "&lon= " + p.coords.longitude + "&max=20";
};
var locFail = function() {
};
navigator.geolocation.getCurrentPosition(suc, locFail);
};
在htmlfile中
<body onload="getLocation();" >
<p id="locatie">Finding geolocation...</p></ul>
<div id="geolocation">
Bezig met laden. Momentje geduld</div>
<script type="text/javascript">
jQuery(function(){
var script=document.createElement('script');
script.type='text/javascript';
script.src= "http://www.192.168.1.111/tools/gpslocation.php?lat=53.216493625&lon=6.557756660461426&max=20";
$("body").append(script);
});
function processTheseTerraces(jsonData){
var shtml = '';
var results = jsonData.results;
if(results){
$.each(results, function(index,value){
shtml += "<li class='store'><a class='noeffect' href='#'><span class='image' style='background-image: url(pics/terras1.jpg)'></span><span class='comment'>" + value.address + "</span><span class='name'>" + value.building_name + "</span><span class='stars5'></span><span class='starcomment'>132 Beoordelingen</span><span class='arrow'></span></a></li>";
});
$("#geolocation").html( shtml );
}
}
</script>
现在我希望坐标通过json并加载数据。我想改变
script.src= "http://www.192.168.1.111/tools/gpslocation.php?lat=53.216493625&lon=6.557756660461426&max=20";
in
script.src= "http://www.192.168.1.111/tools/gpslocation.php?lat=" + p.coords.latitude + "&lon= " + p.coords.longitude + "&max=20";
但这不起作用。有人建议我怎么解决这个问题。
答案 0 :(得分:0)
这:http://www.192.168.1.111
只是一个错误的网址。我想你需要这个:http://192.168.1.111
答案 1 :(得分:0)
地理定位可能需要很长时间(多秒)。这是一个异步请求,这意味着其他javascript代码可能在地理位置抓取地址之前执行。解决方案是在navigator.geolocation.getCurrentPosition
在定义lat和lng之前,JQuery正在构建URL。
答案 2 :(得分:0)
的onload = “的getLocation();”告诉我们在加载文档时调用getLocation函数并在此函数内部将<P id="locatie">
TAG的innerHTML设置为:http://www.192.168.1.111/tools/gpslocation.php?lat=" + p.coords.latitude + "&lon= " + p.coords.longitude + "&max=20
所以问题是:
<p>
标记的内部html上写一个网址将不会这样做而且没有意义。下面的代码片段是在加载文档之前加载的,但我猜你不想这样:
jQuery的(函数(){
var script = document.createElement('script'); script.type = '文本/ JavaScript的'; script.src =“http://www.192.168.1.111/tools/gpslocation.php?lat = 53.216493625&amp; lon = 6.557756660461426&amp; max = 20”; $( “机构”)追加(脚本); });
如果你想:script.src= "http://www.192.168.1.111/tools/gpslocation.php?lat=" + p.coords.latitude + "&lon= " + p.coords.longitude + "&max=20";
那么你必须首先定义p.coords,然后再调用它,否则p.coords是未定义的。
解决方案我不确定你究竟问的是什么,所以无法回答。是否要分配#locatie元素的内部HTML或者是否要将自定义脚本作为标记加载?
无论哪种方式,你都必须对服务器进行ajax调用,这可能是这样的:
$.ajax({
url: "http://www.192.168.1.111/tools/gpslocation.php",
data: "lat=" + p.coords.latitude + "&lon= " + p.coords.longitude + "&max=20",
success: function(Result){
// use Result variable in came from the success function.
document.getElementById("Your_ID_Goes_Here").innerHTML = "do_Something";
}
});