Javascript 使用c在asp.net页面加载时调用java脚本函数#

Javascript 使用c在asp.net页面加载时调用java脚本函数#,javascript,c#,asp.net,latitude-longitude,Javascript,C#,Asp.net,Latitude Longitude,我想用c#在asp.net中调用页面加载的java脚本函数,我的代码是, Asp.net 代码: 函数getloc(){ if(导航器.地理位置){ navigator.geolocation.getCurrentPosition(函数(位置){ 变量纬度=位置坐标纬度; var经度=position.coords.longitude; document.getElementById(“”)。值=纬度; document.getElementById(“”)。值=经度; var coords=

我想用c#在asp.net中调用页面加载的java脚本函数,我的代码是, Asp.net 代码:


函数getloc(){
if(导航器.地理位置){
navigator.geolocation.getCurrentPosition(函数(位置){
变量纬度=位置坐标纬度;
var经度=position.coords.longitude;
document.getElementById(“”)。值=纬度;
document.getElementById(“”)。值=经度;
var coords=new google.maps.LatLng(纬度、经度);
变量映射选项={
缩放:15,
中心:coords,
mapTypeControl:true,
导航控制选项:{
样式:google.maps.NavigationControlStyle.SMALL
},
mapTypeId:google.maps.mapTypeId.ROADMAP
};
map=新建google.maps.map(
document.getElementById(“mapContainer”),mapOptions
);
var marker=new google.maps.marker({
职位:coords,
地图:地图,
标题:“您当前的位置!”
});
});
}否则{
警报(“您的浏览器不支持地理位置API”);
}
}
#地图容器{
高度:500px;
宽度:800px;
边框:10px实心#eaeaea;
}
C#代码:

使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
使用System.Web.UI;
使用System.Web.UI.WebControl;
使用System.IO;
Net系统;
使用系统文本;
使用系统数据;
命名空间LAT_日志
{
公共部分类lat_log_记录:System.Web.UI.Page
{
Class1 ob=新的Class1();
List lst=新列表();
受保护的无效页面加载(对象发送方、事件参数e)
{
ScriptManager.RegisterStartupScript(this,this.GetType(),“Javascript”,“Javascript:getloc();”,true);
ob.lat=hfLat.Value;
ob.log=hfLon.Value;
第一次添加(ob);
//lbllat.Text=纬度;
//lbllog.Text=经度;
gvloc.DataSource=lst;
gvloc.DataBind();
}
受保护的无效btnSave\u单击(对象发送方,事件参数e)
{
}
}
}
我想在页面加载时运行java脚本,但它只显示空白网格。。。 我尝试了其他的选择,比如。。。 ,脚本中的winodows.onload 但它不起作用,需要帮助吗
谢谢你

使用
DOMContentLoaded
事件:

DOMContentLoaded事件在文档完全加载和解析时触发,而不等待样式表、图像和子帧完成加载(加载事件可用于检测完全加载的页面)

编辑

a()
中有嵌套函数
getloc()
。这就是未调用
getloc()
的原因。您可以删除
函数a(){
及其右括号
}

否则,请使用以下代码:

function a() {
    function getloc() {
        ...
    }
    getloc(); // call when `a` is called
}
编辑-2

从正文中删除
return
onload

<body onload="getloc();">


演示:

通过查看代码,在asp页面上,您正在body标记内调用getloc()函数,而这个getloc()位于函数a()内,这似乎是错误的。删除call inside body标记并重试,服务器端代码可能会正常工作。

@TGiri您可以将此代码放在页面的任何位置。在你的例子中,你可以把它放在
函数a()之后。
我按照你的指示做了@Tushar,但它仍然显示为空grid@TGiri正在调用函数吗?你检查过了吗?是的,ScriptManager.RegisterStartupScript(这个,这个.GetType(),“Javascript”,“Javascript:getloc();”,true);在…上pageload@TGiri不需要这样做,只需添加上面显示的代码。
document.addEventListener("DOMContentLoaded", function (event) {
    console.log("DOM fully loaded and parsed");
    getloc();
    // ^^^^^
});
function a() {
    function getloc() {
        ...
    }
    getloc(); // call when `a` is called
}
<body onload="getloc();">