ASP.NET后台调用JS函数问题!!!!!
后台:
protected void BTN_PL_Click(object sender, EventArgs e)
{
Page.RegisterStartupScript("aaa", " <script>showTips(); </script>");
}
JS函数:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
function showTips() {
var time = 1;
var tips = '保存成功';
var btn_bc=document.getElementById('BTN_BC');
var windowWidth = btn_bc.offsetLeft + btn_bc.offsetWidth + 10;
var height = btn_bc.offsetTop + 4;
var tipsDiv = '<div id="stps" class="tipsClass"><div style=" float:left;"><img src="img/ts.png"/></div><div style=" float:left;margin-top:1px; margin-bottom:1px;">' + tips + '</div></div>';
$('body').append(tipsDiv);
$('div.tipsClass').css({
'top': height + 'px',
'left': windowWidth + 'px',
'position': 'absolute',
'font-size': 12 + 'px',
'color': '#0094ff',
'text-align': 'center',
'width': 'auto',
'line-height': 16 + 'px',
'opacity': '0.8'
}).show();
setTimeout(function () { $('div.tipsClass').fadeOut(); }, (time * 1000));
}
后台调用JS函数没有问题,现在的问题是多次调用后,点击浏览器上的退回上一步会再次进入showTips()函数。按理应该是只有用户点击按钮才执行。现在的情况求解????????
------解决方案--------------------你返回上一次,那肯定是上次的操作啊
------解决方案--------------------都是些什么乱七八糟的东西,这并不是意义上的调用,只要执行了服务器事件就是重新生成一次html代码,当前的js代码已经不是上次页面的js代码(页面的生命周期可能好理解些),如果想实现提交保存后,返回提示框,可以考虑
1\直接将function showTips() 部分代码了写到后台输出中,然后结束输出( Response.End())
2\直接用ajax来执行,然后返回结果
------解决方案--------------------一般这样的交互都是Ajax,实例可以在网上找,很多。
------解决方案--------------------实例:http://www.w3school.com.cn/ajax/ajax_example.asp