日期:2014-05-17  浏览次数:20609 次

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