把window.open()写到一个函数里
function openwin(){
  window.open(xxx);
}
当条件满足时再调用!要不可以采用写cookie的办法。判断窗口是否已经弹出过

解决方案 »

  1.   

    给弹出窗口命名。
    如"def":
    window.open('test.htm','def','height=400,width=400')
    那么你再刷新,弹出的窗口只有一个,不会重复出现。
      

  2.   

    这样不行因为我主要的不是弹出一个页面来的问题。而是在弹出之前。。我做了新增一个采购单的操作。。而我这个操作是在DataGrid中的触发的我需要刷新时。。不进入ItemCommand中。。执行
      

  3.   

    你现在可能是将 js, Response.Write 到页面的.
    如果是按钮启动 window.open 方法等的, 可以先考虑使用 html control 来调 js
      

  4.   

    你可以在后端代码中加代码判断:
    protected bool open=false;
    if(!ispostback)
    {
        open =true;
    }在页面中的body中加:
    <%if(open){%>onload="javascript:window.open(*******);"<%}%>
      

  5.   

    增加一个label控件ID值为LbId1,LbId1.Text="<script language='javascript'>window.open('test.htm','def','height=400,width=400');</script>"而在PageLoad中必须有LbId1.Text="";这句。试试看
      

  6.   

    楼上老兄的想法。。只是可以解决不弹出多个子页面,但还是没有办法解决不让他进入DataGrid执行如果我刷新页面。。再一次执行相同的操作那是一个大BUG。
    无法接受的希望大家能再帮我想想办法。。谢谢
      

  7.   

    datagrid.DataBind()放在!IsPostBack中
      

  8.   

    你想那页面只弹出一次?
    这个问题不难的。
    【9、终极应用--弹出的窗口之Cookie控制】  回想一下,上面的弹出窗口虽然酷,但是有一点小毛病(沉浸在喜悦之中,一定没有发现吧?)比如你将上面的脚本放在一个需要频繁经过的页面里(例如首页),那么每次刷新这个页面,窗口都会弹出一次,是不是非常烦人?:-( 
     有解决的办法吗?Yes! ;-) Follow me. 
     我们使用cookie来控制一下就可以了。 
     首先,将如下代码加入主页面HTML的<HEAD>区: <script> 
    function openwin(){ 
    window.open("page.html","","width=200,height=200") 

    function get_cookie(Name) { 
    var search = Name + "=" 
    var returnvalue = ""; 
    if (document.cookie.length > 0) { 
    offset = document.cookie.indexOf(search) 
    if (offset != -1) { 
    offset += search.length 
    end = document.cookie.indexOf(";", offset); 
    if (end == -1) 
    end = document.cookie.length; 
    returnvalue=unescape(document.cookie.substring(offset, end)) 


    return returnvalue; 
    } function loadpopup(){ 
    if (get_cookie('popped')==''){ 
    openwin() 
    document.cookie="popped=yes" 

    } </script>  然后,用<body onload="loadpopup()">(注意不是openwin而是loadpop啊!)替换主页面中原有的<BODY>这一句即可。你可以试着刷新一下这个页面或重新进入该页面,窗口再也不会弹出了。真正的Pop-Only-Once! 
      

  9.   

    楼上都没有理解到楼主的意思阿。。实际上,说白了就表单的重新刷新的问题。
    要想表单不能重新刷新,
    有n种方式:
    比如:
    定义js,禁止f5等等。
    我向老兄推荐使用内嵌iframe的方式,把表单值全部post到iframe里面就可以了。
    而这时候在刷新,就不会post表单了。