none
怎么判断关闭按钮事件被触发 RRS feed

  • 问题

  • 我在a.aspx里用window.open()打开了一个小窗体(这个窗体是完全代码生成的,即网站文件中没有这个窗体网页文件),窗体里面只有一个按钮(关闭按钮)
    现在的情况是,我在a.aspx里面怎么判断这个关闭按钮事件被触发了

    ps:代码我是这样写的:
    MessageBox.ResponseScript(this, "var url='';var pageName='';var iWidth=400;var iHeight=110;var iTop=(window.screen.availHeight-30-iHeight)/2;var iLeft=(window.screen.availWidth-10-iWidth)/2;var w=window.open(url,name,'height='+iHeight+',,innerHeight='+iHeight+',width='+iWidth+',innerWidth='+iWidth+',top='+iTop+',left='+iLeft+',toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,status=no');w.document.write('<html><head><title>您的订单号:" + bl_no + "</title></head><body><form><table style=background-color:#ffffee;><tr><td align=center><span style=font-weight:bold;font-size:20px;>下单成功!</span></td></tr><tr><td>请在七日之内付款,并记好您的订单号:<span style=font-weight:bold;color:#A71F24>" + bl_no + "</span>,以便确认货物!</td></tr><tr><td align=center><input type=button value=关闭 onclick=window.close();></input></td></tr></table></form></body></html>');window.location.href='paySuccess.aspx';");
    现在情况是,能顺利执行,但是会被浏览器拦截,当允许弹出窗口后,会话变量已经失效(购物车里的东西清空了),造成又要重新选择购买物品,还有就是,用户必须选择“总是允许”才能达到购物目的
    请教各位高人,有好的解决方案吗?(这是.net2.0的)
    • 已编辑 NewJoin 2009年9月23日 6:22
    2009年9月21日 5:49

答案

全部回复

  • 你在生成这个按钮时,生成它的的 js onclick 事件,在这个事件中调用 a.aspx 的一个 js 方法,这里, a.aspx 就知道了
    知识改变命运,奋斗成就人生!
    2009年9月21日 6:01
    版主
  •  

    你在生成这个按钮时,生成它的的 js onclick 事件,在这个事件中调用 a.aspx 的一个 js 方法,这里, a.aspx 就知道了
    知识改变命运,奋斗成就人生!

    您好,这个按钮我是在后台代码里生成的,那么在按钮的onclick里怎么调用a.aspx的js方法?还有就是a.aspx的js方法写在哪里呢?不是写在前台里面吧?

    2009年9月21日 6:17
  • a.aspx里面写:

    function ok()
    {
    alert()
    }


    小窗体里写:
    <input type=button onclick="opener.ok();window.close()" value="close" />

    【孟子E章】
    • 已标记为答案 NewJoin 2009年9月23日 9:06
    2009年9月21日 6:42
    版主
  • var btn = document.createElement("input");
    btn.setAttribute("type","button");
    btn.setAttribute("value","按钮名称");
    btn.onclick = function(){
    //...这个按钮的执行操作
    }
    做最好的自己
    2009年9月21日 7:08
  • 你好,

    你所说的这个按钮是在后台代码里加的是什么意思,是在cs代码中加的吗?如果是添加的服务器端button,可以采用如下方法添加onclick事件。

    Button btn=new Button();
    btn.Text="CLICK";
    Btn.Attributes.Add("onclick","your js function as Meng mentioned);
    Microsoft Online Community Support
    2009年9月22日 3:33
  • 你好,是在cs代码里面加的,用doucument.write输出的<input type=button value=关闭>

    2009年9月22日 3:59
  • 你可以在 write 的时候加上 onclick 事件,如:
    子窗体写:document.write('<input type=button onclick="opener.ok();window.close()" value="close" />');
    父窗体写:
    function ok()
    {
        // Your code
    }


    知识改变命运,奋斗成就人生!
    2009年9月22日 4:03
    版主
  • 如果是有服务器的提交,可以放在frameset里比较可靠
    【孟子E章】
    2009年9月22日 6:59
    版主