加载asp.net webform时如何停止运行javascript函数?
我正在编写此代码以在地图上显示我的位置:加载asp.net webform时如何停止运行javascript函数?,javascript,jquery,asp.net,Javascript,Jquery,Asp.net,我正在编写此代码以在地图上显示我的位置: <script src="http://maps.googleapis.com/maps/api/js"></script> <script> function initialize(x, y) { alert(x); alert(y); var mapProp = { center: new googl
<script src="http://maps.googleapis.com/maps/api/js"></script>
<script>
function initialize(x, y) {
alert(x);
alert(y);
var mapProp = {
center: new google.maps.LatLng(x, y),
zoom: 5,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("googleMap"), mapProp);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
我想当按钮启动时,将值发送到函数和java脚本函数更改映射位置,这是可行的,但当按钮启动时,函数运行,并在加载web表单时再次运行!,在第一次显示正确的位置时,但当页面加载事件发生时,将空值发送到函数并显示空位置,我认为在asp按钮中运行java脚本函数时会触发,而在页面加载发生时不运行java脚本函数?代码的问题是代码块的执行顺序。根据
msdn
,通过ClientScriptManager.RegisterStartupScript添加的代码的执行时间:
RegisterStartupScript方法添加的脚本块在页面完成加载但引发页面的OnLoad事件之前执行
因此,您可以通过在脚本
标记中添加布尔变量
来解决问题(该变量在页面加载时执行),最初将其设置为false
,然后在按钮单击处理程序中将其更改为true
(页面加载完成后执行)。然后在窗口中。onload
事件侦听器中,检查变量是否为false
。如果是,则可以初始化映射
因此,您的javascript
将更改为:
<script>
var isButtonClick = false;
function initialize(x, y) {
var mapProp = {
center: new google.maps.LatLng(x, y),
zoom: 5,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("googleMap"), mapProp);
}
google.maps.event.addDomListener(window, 'load', function () { if(!isButtonClick)initialize(0, 0) });
</script>
我在当地进行了测试,效果很好谢谢我的朋友关注我的问题,现在我投票支持你。
<script>
var isButtonClick = false;
function initialize(x, y) {
var mapProp = {
center: new google.maps.LatLng(x, y),
zoom: 5,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("googleMap"), mapProp);
}
google.maps.event.addDomListener(window, 'load', function () { if(!isButtonClick)initialize(0, 0) });
</script>
void ButtonClick(object sender, EventArgs e)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "beh", "isButtonClick=true;initialize(38.076306,46.279637);", true);
}