2012-08-30 116 views
1

我有加载和运行的jQuery一旦页面已经准备好,像这样的网页:如何在运行页面加载的jquery脚本之后运行C#代码?

$(document).ready(function() { 
     navigator.geolocation.getCurrentPosition(showPosition, positionError); 

     function showPosition(position) { 
      var latitude = position.coords.latitude; 
      var longitude = position.coords.longitude; 
      document.getElementById('div_latitude').innerHTML = latitude; 
      document.getElementById('div_longitude').innerHTML = longitude; 
     } 

     function positionError(position) { 
      alert("Error: " + position.code); 
     } 
    }); 

后,我分配了div_latitude和div_longitude他们的价值观,我想运行,它会自动使用该信息的代码。我如何确保第二段代码在jquery之后运行?

+1

你可以调用一个WebMethod或使来自JavaScript的Ajax调用,但它听起来像是给需要重新考虑你的设计 – jbabey

+0

有没有办法从服务器端获取地理位置信息? – mellamokb

+0

如果你想运行c#代码,你需要做一个服务器逻辑的ajax调用 –

回答

4

您将不得不向服务器发出AJAX调用。

+0

那么,你可以执行如果你真的觉得这是一个完整的页面回发,那么AJAX可能是* best *选项,即使不是唯一的选项 – Servy

+0

好的,我会研究一下,有没有什么办法可以给我一个例子将被正确地用于这种情况? –

1

您可能希望检查jquery中的状态为“完成”,并且您可以对要执行的C#代码进行AJAX调用。

1

您必须进行ajax调用才能与服务器端代码进行通信,以便在加载jQuery后传递所需的值。

代码如下。 $(文件)。就绪(函数(){ navigator.geolocation.getCurrentPosition(showPosition,positionError);

function showPosition(position) { 
     var latitude = position.coords.latitude; 
     var longitude = position.coords.longitude; 
     document.getElementById('div_latitude').innerHTML = latitude; 
     document.getElementById('div_longitude').innerHTML = longitude; 
    } 

    function positionError(position) { 
     alert("Error: " + position.code); 
    } 
    makeAjaxCall(); 

}); 
    function makeAjaxCall() 
    { 
    $.ajax({ 
      type: "POST", 
      url: "PageName.aspx/MethodName", 
      data: "{}", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function(msg) { 
      // Ajax Call Successfull. 
      } 
     }); 
    } 
相关问题