20

我有一个使用以下代码打开的弹出窗口:

function _openpageview(fieldid,objectid,opennew)
{
var url='/s_viewpagefield.jsp?fieldid='+fieldid+'&codedid='+objectid;

  web_window = window.open(url,'_blank', 'menubar=yes,location=no,scrollbars=yes,width=800,height=600,status=no,resizable=yes,top=0,left=0,dependent=yes,alwaysRaised=yes');
   web_window.opener = window;
   web_window.focus();


}

如何从弹出窗口中关闭该弹出窗口?

window.close();
self.close();
web_window.close();

一切都没有奏效

4

8 回答 8

35

一个老提示...

var daddy = window.self;
daddy.opener = window.self;
daddy.close();
于 2013-09-19T12:31:51.943 回答
8

您只能使用使用 javascript 打开的 javascript 关闭窗口,即使用以下命令打开窗口时:

window.open

然后

window.close

将工作。否则不会。

于 2013-11-05T15:39:34.483 回答
3

对于这样一个看似简单的事情,这可能是一个皇家的痛苦!我找到了一个效果很好的解决方案(class="video-close" 显然是这个按钮特有的并且是可选的)

 <a href="javascript:window.open('','_self').close();" class="video-close">Close this window</a>
于 2018-10-04T00:11:57.363 回答
2

当您尝试关闭窗口时,您的 web_window 变量必须超出范围。将此行添加到您的 _openpageview 函数中进行测试:

setTimeout(function(){web_window.close();},1000);
于 2013-01-02T16:41:15.500 回答
1

在我的情况下(joomla 打开弹出窗口)我不得不使用这个:

onclick="submit(); window.parent.location.reload(false);window.parent.SqueezeBox.close();"

希望这可能会有所帮助

于 2021-07-29T07:05:21.053 回答
0

在我的情况下,我只需要关闭我的弹出窗口并将用户重定向到他的个人资料页面,当他在阅读一些我尝试了一些黑客的消息后点击“确定”,包括 setTimeout + self.close(),但使用 IE ,这是关闭整个标签...

解决方案:我用一个简单的提交按钮替换了我的链接。
<button type="submit" onclick="window.location.href='profile.html';">buttonText</button>. 而已。

这听起来可能很愚蠢,但我没有想到这么简单的解决方案,因为我的弹出窗口没有任何形式。

希望对像我这样的前端菜鸟有所帮助!

于 2016-03-30T16:21:16.993 回答
0

试试这个解决方案

<html>
<script>
var newWindow;

function openWindow() {
  newWindow = window.open("", "myWindow", "width=200,height=100");
  newWindow.document.write('<a href="javascript:window.close();" class="video-close">Close this window</a>');
}

function closeWindow() {
  newWindow.close();
}
</script>
<h3 style="color:brown"> Close Window Example </h3>
<body>
<button onclick="openWindow()">Open New Window</button>
<br><br>
<button onclick="closeWindow()">Close New Window </button>

</body>
</html>
于 2021-10-01T10:53:26.650 回答
0

打印后关闭弹出窗口。

在父窗口中

  let IframeLink = '../Sale/PriceKOT?SalesID=@(Model.SalesInfo.SalesID)&PrintTypeID=3';
     var newwindow = window.open(IframeLink, "KOT Print", 'width=560,height=550,toolbar=0,menubar=0,location=0');
    if (window.focus) { newwindow.focus() }

    function closeThisPopUp() {            
        newwindow.close();
        printf();
    }       

在子窗口或弹出窗口中

 window.onafterprint = function (event) {
    opener.closeThisPopUp();
    window.close;
};
于 2021-10-29T18:39:00.003 回答