json-script 中的变量 url

Variable url in json-script

本文关键字:url 变量 json-script      更新时间:2023-09-26

闹好几天知道。学习JavaScript和jquery几个星期,进展顺利,但有时...

对于移动应用程序,我正在尝试获取坐标。在页面上显示它们不是问题,但我希望它们在其他地方。

总的来说.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);
};

并在 html 文件中

<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";

script.src= "http://www.192.168.1.111/tools/gpslocation.php?lat=" + p.coords.latitude + "&lon= " + p.coords.longitude + "&max=20";

但这行不通。有人建议我如何解决这个问题。

这: http://www.192.168.1.111只是一个错误的 URL。我想你只需要这个:http://192.168.1.111

地理位置可能需要很长时间(几秒钟)。这是一个异步请求,这意味着其他javascript代码可以在地理位置获取地址之前执行。解决方案是将使用该位置的任何代码或函数调用放在回调函数内navigator.geolocation.getCurrentPosition

JQuery 正在定义 lat 和 lng 之前构建 URL。

onload="getLocation();" 表示当文档加载时调用 getLocation 函数,在此函数中,您将 <P id="locatie"> TAG 的内部 HTML 设置为: http://www.192.168.1.111/tools/gpslocation.php?lat=" + p.coords.latitude + "&lon= " + p.coords.longitude + "&max=20

所以问题是:

  1. 如果您制作脚本标签并分配源,则浏览器会获取源数据,但在<p>标签的内部 html 上编写 url 不会这样做,也没有意义。
  2. 下面的代码片段是在加载文档之前加载的,但我想你不希望这样:

    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);});

  3. 如果你想要: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";
  }
});