webform2.aspx:
其它的代码就省了,只写关键的:
<INPUT id="aaa" style="Z-INDEX: 102; LEFT: 256px; WIDTH: 104px; POSITION: absolute; TOP: 256px; HEIGHT: 32px" type="button" value="Button" onclick="window.open('WebForm1.aspx','newwindow','')">
这是打开webform1这个窗体,名称为newwindow
webform1中:
<body MS_POSITIONING="GridLayout" onunload="closewindow()"><script>
function closewindow()
{
alert("关闭窗体!");
}我是这样操作的:点击一次inputbutton按钮就重载一次webform1,但是为什么webform1页面一直要执行closewindow这个事件呢?这个事件我只想在我手动关闭winform1时,执行一次,但为什么我从第二次点击button时,它都会执行?怎么实现我说的这种情况?不管点击多少次button它都不会执行,只有真正关闭webform1时,才执行哪个函数呢?

解决方案 »

  1.   

    window.onbeforeunload=function()
    {
      alert("关闭窗体!");
    }
      

  2.   

    <script for=window event=onbeforeunload> 
    if(event.clientX>document.body.clientWidth)
    alert("关闭窗体");
    </script>
      

  3.   

    因为你点button时,它需要打开新窗口'newwindow',所以要重新加载'WebForm1.aspx',因此,首先执行unload然后再执行load,所以出现了你说的问题
      

  4.   

    回复人: startray(孙悟空庄重宣布:从现在开始,国民进入抗日非常时期!) ( ) 信誉:98 说的对,但是要加上:toolbar=no,location=no,status=0,menubar=no,scrollbars=no,resizable=no,width=500,height=490这个就不行啦
      

  5.   

    在webform2.aspx的window.open前检查newwindow窗口存不存在,存在的话,控制其onunload函数。
      

  6.   

    我在apsx页中测试成功
    但要是换到一个用户控件中就不行啦
    怎么解决呀?