一个test.htm页面如下:
<input type=button value=Close onclick="window.close()"><input type=button value=Open onclick="window.open('test.htm')">
点Open打开新窗口,然后在新窗口点浏览器的打印预览,再点Close按钮,发现关闭不了窗口了。
如果不点打印预览,直接点Close关闭窗口是没问题的。
如何让点过打印预览后也能用window.close()关闭窗口呢?

解决方案 »

  1.   


    <input type=button value=Close onclick="javascript:window.close();"><input type=button value=Open onclick="javascript:window.open('test.htm');">
    JS这玩意还是把代码写的正规些吧……
      

  2.   

    ie点击打印预览后,是无法用window.close()关闭当前窗口的,但可以用另一个方法,就是添加<OBJECT id="WebBrowser" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" height="0" width="0"></OBJECT>调用WebBrowser.ExecWB(45,1)来关闭窗口
      

  3.   


    <body>
        <form id="form1" runat="server">
        <div>
            <input type=button value=Close onclick="window.close()">        <input type=button value=Open onclick="window.open('test.htm')">    </div>
        </form>
    </body>用的你代碼,打開B頁面,點close按鈕是可以關閉A頁面的.
      

  4.   

    我这里可以关
    ie6.0+xp sp2
    不知道楼主的平台是什么
      

  5.   

    可能很多人没看清楚问题,
    我说的是点了IE菜单上的打印预览后,然后关闭打印预览,然后再点关闭按钮去关闭窗口,这样是关不掉的,无论IE6\7\8都是.考虑到浏览器的安全性问题,不想用WebBrowser.ExecWB(45,1)
      

  6.   

    ding 
    ding 
    ding 
      

  7.   

    回LZ,我的确点了打印预览,在test.htm页点的,可以关,本地是IE6
      

  8.   

    难道是WINDOW的问题?我这里试了几个机器都关不了,不知道其他人的如何?
      

  9.   

    在'test.htm'页面里面加上如下代码window.onload=function(){opener=null};
      

  10.   

    在<head runat="server">
    里加:
    <base target="_self"></base>
      

  11.   

    <input type=button value=Close onclick="javascript:window.close();"><input type=button value=Open onclick="javascript:window.open('test.htm');">
      

  12.   

    可能是IE的问题吧。
    IE的BUG很多
      

  13.   

    <input type=button value=Close onclick="javascript:window.close();"><input type=button value=Open onclick="javascript:window.open('test.htm');">
      

  14.   


    <body>
        <form id="form1">
        <div>
            <input type=button value=Close onclick="window.close()">        <input type=button value=Open onclick="window.open('test.htm')">    </div>
        </form>
    </body>
    按照楼主说的操作,结果我的可以关掉.IE6.0
      

  15.   

    <input type=button value=Close onclick="javascript:window.close();"> <input type=button value=Open onclick="javascript:window.open('test.htm');"> 
    顶这个
      

  16.   

    回家用XP的IE7试了,同样点了打印预览后关闭不了窗口。FF没问题。
      

  17.   

    <a href="javascript:window.close()"><font><strong>关 闭 窗 口</strong></font></a>
      

  18.   

    关闭不了窗口的,大家应该先搞清楚楼主的问题。1.htm
    <input type=button value=Open onclick="window.open('test.htm')">test.htm
    <input type=button value=Close onclick="window.close()">
    在1.htm中点击open按钮打开test.htm,
    这时点test.htm的打印预览,再点Close按钮,发现关闭不了窗口了
      

  19.   

    window.close()只可以关闭window.open()的窗口你的窗口虽然是由window.open打开,但是可能打印的时候改变了窗口的属性(*****在这里找问题),才发生这种情况
      

  20.   

    !!!这是那个板块呀?一看都讨论这问题呢!!哇!!太有型了!!
    -------------------------------------------------------------------
    这样关闭才是真正的关闭
    function closewindow(){
    if(window.opener){
    window.opener.location.reload(true);
    window.close();
    }
    }---------------------------------------------------------------
    普通的关闭如果失去焦点就说不好了,有可能打开多个窗口!!
    如下是打开方法!
    function openWin(f,n,w,h,s){
    sb = s == "1" ? "1" : "0";
    l = (screen.width - w)/2;
    t = (screen.height - h)/2;
    sFeatures = "left="+ l +",top="+ t +",height="+ h +",width="+ w
    + ",center=1,scrollbars=" + sb + ",status=0,directories=0,channelmode=0";
    openwin = window.open(f , n , sFeatures );
    if (!openwin.opener)
    openwin.opener = self;
    openwin.focus();  //发现很多程序员都不写这个。
    return openwin;
    }
      

  21.   


    用WebBrowser.ExecWB(45,1)试过了没问题,但考虑到浏览器安全性不想用这个来做.
      

  22.   

    在ie8下测试没有任何问题。
    ff只能使用window.close关闭window.open打开的窗口。否则,需要修改浏览器配置的
      

  23.   

    按照50楼的做法,我的IE6可以关闭test.htm页面的啊,点击IE中的"打印预览"后也可以关闭的啊所以建议lz将问题描述清楚点!
      

  24.   

    楼主可以试试 25 楼的方法,看是不是TARGET的问题~。。
      

  25.   

    我的能关闭!就是按你的所有步骤都试过,不管是点不点打印预览都能关闭。我用的IE6和XP2.你的代码我试过,一摸一样,我觉得你放到服务器上试一下,估计没什么问题……
      

  26.   

    確實不能使用
    打打印预览后無法用window.close()關閉用window.open()的窗口的
    看60樓有沒有其它的解決辦法
      

  27.   

    javascript:window.open('test.htm');"> 
      

  28.   


    不明白为什么有这么多人在这充内行,回答别人问题先麻烦自己先测试,不要那么不负责任。
    先不管是不是open的页面,哪怕就是一个普通的页面,只有这样一句代码如下:
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="JSapsxcs.aspx.cs" Inherits="JSapsxcs" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <input type="button" value="close" onclick="javascript:window.close();" id="btnClose" />
        </div>
        </form>
    </body>
    </html>
    这样,直接关闭是没有问题的,但是点击打印预览,然后关闭预览窗口,再点击这个按钮,就没有任何作用了。
    xp sp3+ie7,希望大家一起来负责的找原因,而不是口口声声说试了“正解”!!!尝试了指定页关闭,base _self等都没有用。
      

  29.   

    水平有限,尝试了所有能想到的办法,设置当前页焦点,规范js写法,关闭self本身,甚至想过是否打印预览窗口算是一个open窗口,而close注册到了这个窗口上,所以改用关闭父页面等等。都无法实现,这应该算是一个BUG吧。除了close方法,其他js脚本都可以正常运行。
    找了国外的网站,都有这个问题。
    javascript:document.all.WebBrowser.ExecWB(45,1);是我目前在国外站点发现的唯一方法,希望还有更高明的方法。
      

  30.   

    也许前面没说得很清楚,这里再把问题重新叙述总结一下:一个神奇的页面中放有一个神奇的Close按纽:<input type="button" value="close" onclick="javascript:window.close();" id="btnClose" />
    没点打印预览之前,点这个按纽可以正常关闭的,点了打印预览之后,关闭打印预览窗口,之后再点这个Close按纽,惊奇的发现窗口不能关闭了.我用XP+IE7和WIN2003+IE6,WIN2003+IE8都试过,都不能关闭.但有神奇的牛人说他神奇的IE6正常可以关闭.所以我现在也不明白到底是哪出了问题.用javascript:document.all.WebBrowser.ExecWB(45,1);是没问题的,但考虑安全性不想用.
      

  31.   

    可能和文件保存的格式有关系.或者是html头部的某些代码有影响.
    把下面的代码保存在记事本里,修改为test.htm这样是可以关掉的.<body>
        <form id="form1">
        <div>
            <input type=button value=Close onclick="window.close()">        <input type=button value=Open onclick="window.open('test.htm')">    </div>
        </form>
    </body>
    aspx的有可能就关不掉.我这里没有环境,不好测试.
      

  32.   

    我这里无论是HTML还是ASPX都不行.
      

  33.   

    这个问题http://www.google.com/搜索很多的,可惜没有一个好的解决方法http://www.google.com/search?hl=en&client=firefox-a&rls=org.mozilla%3Azh-CN%3Aofficial&hs=CBU&newwindow=1&q=print+window.close&aq=f&oq=&aqi=
      

  34.   


    确实有这个问题,点击打印预览后关闭窗口用javascript:document.all.WebBrowser.ExecWB(45,1);这个才可以,window.close()不管用,个人认为不必太深究了,没准等IE9就修正了
      

  35.   

    <input type=button value=Close onclick="javascript:window.close();">
    已测试能关闭。
    如果你那里实在关不掉。换
    <script>
    function db(){
    window.close();//这样试试,看能不能关闭
    }
    </script>
    调用:<input type=button value=Close onclick="javascript:db();">
      

  36.   

    我的是windows XP ,可以的呀
      

  37.   

    应该先把打印的test.htm关了,再关整个窗体吧