[原创]弹出窗口解决方案

[基本函数]打开子窗口的基本函数
<script type="text/javascript" language="javascript">
function openwindow(url,name,h,w)
{
        window.open(url,name,"height="+h+",width="+w+",status=yes,toolbar=no,menubar=no,location=no");
}
</script>

1.弹出窗口
    弹出窗口的写法在不同的环境中也不一样,如果要打开固定的页面,又不需要传递任何参数,这时就可以采用比较简单的静态代码,但是,如果打开的页面不一定,或者要传递参数,则就需要在后台编写代码了。这时一般用HYPERLINK控件。

       A.静态代码:
       <a href="#" onclick="openwindow('reg/agreement.aspx','','520','500')">会员注册</a>    

       B.动态生成:
       hy_addepict.Attributes.Add("onclick", "openwindow('abc.aspx?roleid=" + myroleid+ "&act=add&worksid=myworksid+ "','作品角色形象管理','600','600')");

 

2.关闭弹出窗口
    通常情况下,关闭窗口时不需要对父窗口做任何操作,但如果子窗口是某一对象的修改画面,这时,当关闭子窗体时就需要对父窗口刷新,刷新可以通过三种方式来实现:1,采用window.opener.location.reload(true);刷新父窗口,但是,如果父窗口之前点过某一个按扭或其它控件,此时时常会跳出来一个提示框,非常烦人,这时候,如果页面上有一个功能按钮,我们就可以利用window.opener.__doPostBack('ctl00$contentPlaceHolder1$bt_query','');在父窗口上运行某个事件,就不会弹出烦人的提示框,或者,采用window.opener.location='role.aspx?worksid=1';将网页指向到新的网址,当然可以是自己本身,等于重新加载了本页,也不会出提示框。

      A.关闭,不执行任何操作
      Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "close", "<script language='javascript' type='text/javascript'>window.close();</script>");

      B.关闭并将父窗体转到目标网址
      Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "close", "<script language='javascript' type='text/javascript'>window.opener.location='role.aspx?worksid=1';window.close();</script>");

      C.关闭并刷新父窗体
          Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "close", "<script language='javascript' type='text/javascript'>window.opener.location.reload(true);window.close();</script>");

      D.关闭并执行父窗体上的控件事件
      Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "close", "<script language='javascript' type='text/javascript'>window.opener.__doPostBack('ctl00$contentPlaceHolder1$bt_query','');window.close();</script>");

本文章关键字:.net,asp.net,javascript,弹出窗口,POP

posted on 2007-10-03 11:21  小啤酒  阅读(435)  评论(0编辑  收藏

导航