最近遇到了一个很棘手的问题就是,在.net平台下用到了js并要求点击一个按钮后弹出一个不带地址栏的窗口。我用到了window.open()函数,我的程序是这样写的:
              StringBuilder sBuilder = new StringBuilder();
              sBuilder.Append("window.open('");
              sBuilder.Append(_pathBuilder);
              sBuilder.Append("','' , '");
              sBuilder.Append("height=");
              sBuilder.Append(_webPageHeight);
              sBuilder.Append(",width=");
              sBuilder.Append(_webPageWidth);
              sBuilder.Append(",top='+(window.screen.availHeight-200)/2 +'");
              sBuilder.Append(",left='+(window.screen.availWidth-    300)/2+',scrollbars=yes,toolbar=no,resizable=yes,directories=no,location=no");
              sBuilder.Append("')");
              ExecuteJs(sBuilder.ToString());//这是一个自定义的函数,调试过了没有问题,问题就在于我给location付了no还是不起作用。

解决方案 »

  1.   

    把設置TOP 及Left部分去掉試試
      

  2.   

            下表为parameters参数表:
            参数          衩始值          说明
            alwaysLowered yes/no 指定窗口隐藏在所有窗口之下。
            alwaysRaised yes/no 指定窗口浮在所有窗口之上。
            dependent yes/no 指定打开的窗口为父窗口的一个了窗口。并随父窗口的关闭而关闭。
            directions yes/no 指定Navigator 2和3的目录栏是否在新窗口中可见。
            height pixel value 设定新窗口的像素高度。
            hotkeys yes/no 在没有菜单栏的新窗口设置安全退出热键。
            innerHeight pixel value 设置新窗口中文档的像素高度。
            innerWidth pixel value 设置新窗口中文档的像素宽度。
            location yes/ no 指明位置栏在新窗口中是否可见。
            menubar yes /no 指明菜单栏在新窗口中是否可见。
            outerHeight pixel value 设定窗口(包括装饰边框)的像素高度。
            outerWidth pixel value 设定窗口(包括装饰边框)的像素宽度。
            resizable yes /no 指明新窗口是否可以调整。
            screenX pixel value 设定新窗口离屏幕边界的像素长度。
            screenY pixel value 设定新窗口离屏幕上边界的像素长度。
            scrollbars yes /no 指明滚动栏在新窗口中是否可见。
            titlebar yes /no 指明菜单题目栏在新窗口是否可见。
            toolbar yes /no 指明工具栏在新窗口中是否可见。
            Width pixel value 设定窗口的像素宽度。
            z-look yes /no 在文档中包含各个 <pplet>标签的数组。
            fullscreen yes / no 打开的窗体是否进行全屏显示
            left pixel value 设定新窗口距屏幕左方的距离
            top pixel value 设定新窗口距屏幕上方的距离
    也许是你拼的有问题,把你的 sBuilder 的toString()在后台打印下,复制到window.open("")里面在前台试试就知道是否是你拼的 错误了
      

  3.   

    回复8楼,可以弹出,我列出的所有属性也都能生效,就一个location=no无效,请高手指点迷津!
      

  4.   

    <HTML>
     <HEAD>
      <TITLE>B</TITLE>  
     <base target="_self" />
    </HEAD><SCRIPT>
    function OPenE() {
                window.open('E.html', 'newwindow', 'height=420,width=800,top=' + (screen.AvailHeight - 300) / 2 + ',left=' + (screen.AvailWidth - 300) / 2 + ',toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no');
            }
    </SCRIPT></HEAD> <BODY>
    <input type='button' onclick='OPenE()' value='open D.html' /><table id="table1" border=1>
        <tbody id="tbody1">
    </table>
     </BODY>
    </HTML>
    <HTML>
     <HEAD>
      <TITLE>B</TITLE>  
     </HEAD> <BODY>
    <input type='button' onclick='Add()' value='Test' />
     </BODY>
    </HTML>
      

  5.   

    如果是那个问题的话,那么窗口就弹不出来的!现在是所有的属性都生效,就一个location不生效!求证问题!
      

  6.   


    你代码是对的,其核心部分和我的一样!我试过了,单独列出来是可以隐藏,但是放在ASP.NET里用scriptmanager类里面的RegisterStartupScript(page.GetType(),screptkey,js)方法时location就失效了!我想这肯定是ASP.NET 里哪个地方的配置文件要修改的问题,但我又找不着这个文件!请教!
      

  7.   

                  StringBuilder sBuilder = new StringBuilder(); 
                  sBuilder.Append("window.open('"); 
                  sBuilder.Append(_pathBuilder); 
                  sBuilder.Append("','' , '"); 
                  sBuilder.Append("height="); 
                  sBuilder.Append(_webPageHeight); 
                  sBuilder.Append(",width="); 
                  sBuilder.Append(_webPageWidth); 
                  sBuilder.Append(",top=50"); 
                  sBuilder.Append(",left=50,scrollbars=yes,toolbar=no,resizable=yes,directories=no,location=no"); 
                  sBuilder.Append("')"); 
                  ExecuteJs(sBuilder.ToString());你先试试这样
      

  8.   

    IE7+ 都是这样的了,地址栏隐藏不掉,是为了安全问题,但是那个地址栏是disable的  不可用的。
      

  9.   

    也是和楼主一样的问题--能不能写JS屏蔽或改写真实的URL
      

  10.   

    同样问题啊.而且火狐下和IE下效果完全不同啊.求高人指点啊!!!还有那个location=no根本不管用.
      

  11.   

    location这种东西在支持多窗口的浏览器IE7/IE8/FF/Chrome/Safari等下面是无效的安全性的原因,无法去掉地址栏的。另外,即使你去掉了,按CTRL+N就能打开了你可以将站点加入到可信任站点即可不显示