Javascript window.close()不使用弹出窗口处理弹出窗口

Javascript window.close()不使用弹出窗口处理弹出窗口,javascript,popup,window.closed,Javascript,Popup,Window.closed,我有一个客户信息表单,它有一个锚定标签“close”,应该会关闭当前窗口。此客户表单将作为弹出窗口打开。客户表单还有一个搜索btn,单击它会弹出一个名为searchOrder.js的javascript运行的搜索表单。所以基本上它是一个弹出窗口里面的弹出窗口。客户表单的close btn不起作用,但删除对searchOrder.js的引用后,它开始起作用。此外,当搜索弹出窗口打开时,我单击“关闭”锚标记,它将关闭搜索弹出窗口,但不会关闭当前窗口(即客户表单)。 我已经尝试了很多解决方案,但都不管

我有一个客户信息表单,它有一个锚定标签“close”,应该会关闭当前窗口。此客户表单将作为弹出窗口打开。客户表单还有一个搜索btn,单击它会弹出一个名为searchOrder.js的javascript运行的搜索表单。所以基本上它是一个弹出窗口里面的弹出窗口。客户表单的close btn不起作用,但删除对searchOrder.js的引用后,它开始起作用。此外,当搜索弹出窗口打开时,我单击“关闭”锚标记,它将关闭搜索弹出窗口,但不会关闭当前窗口(即客户表单)。 我已经尝试了很多解决方案,但都不管用。我使用了self.close()、window.opener.close(),使其成为btn而不是链接等,并在单击时调用了一个函数

    function closeWindow() {

        var closeRef;

 window.opener='x';                             
            closeRef =  window.open('','_parent','');
//or closeRef = window.open("",name);
            closeRef.close();

           }
这是我的普惠制代码:

    <g:form  method="post" name="CustomerInfoForm" target="_parent" role="form">
    <div class="id="closeLink"><a href="JavaScript:window.close()">Close</a></div>
    <button id="searchOrderButton" type="button" class="button" onclick="searchOrder(document.forms[0].summaryMessage.value,'summaryMessageText','${createLink(action:'searchOrder')}','${createLinkTo(dir:'images',file:'closeButton.gif')}')" value="Search Order">Check Order</button>   
   </g:form>


您可以将
window.close()
缩短为仅
close()
并将
window.open()
缩短为
open()
。不过,也许你会在这里找到你需要的东西:


您应该使用如下功能关闭弹出窗口:

<g:form  method="post" name="CustomerInfoForm" target="_parent" role="form">
    <div class="id="closeLink">
         <a href="JavaScript:closepopup()">Close</a>
    </div>
    <button id="searchOrderButton" type="button" class="button" onclick="searchOrder(document.forms[0].summaryMessage.value,'summaryMessageText','${createLink(action:'searchOrder')}','${createLinkTo(dir:'images',file:'closeButton.gif')}')" value="Search Order">Check Order</button>   
</g:form>

<script type="text/javascript">
   function openpopup()
   {
      my_window = window.open("","myPopup","status=1,width=100,height=100");
   }

   function closepopup()
   {
      if(false == my_window.closed)
      {
         my_window.close ();
      }
   }
</script>


为什么需要一个函数
window.close()
应该满足您的需要。close()方法仅关闭JavaScript使用open方法打开的窗口。如果您尝试关闭任何其他窗口,将显示一条确认消息,要求用户选择是否关闭该窗口。我想尝试此操作,但我不确定如何关闭,因为客户信息弹出窗口的触发器来自属于diff项目的btn。当客户信息弹出窗口显示在grails中的一个框架中时,这是一种完全不同的技术:(您是否尝试过
?不确定它是否适用于您的情况,但仍然值得尝试一下!我不确定这是否可行,窗口名称未存储在弹出式html中。是否有一种方法可以使用var popName=window.open()获取窗口名称而不必退出?tnxyes,有很多方法可以做到这一点,但是您需要提供关于最初打开弹出窗口的不同项目的更多详细信息。您真的不知道它是如何打开的吗?Javascript、Asp.net或其他?我有一个想法。这是打开它的代码,附加到btn.in java.gwt.custom class.OurWindow.open的click命令(createCustomerURL,“process”,“height=600,width=800,scrollbars=yes,resizeable=yes,toolbar=no,directories=no,status=no,menubar=no”,true);tnx但是我的表单有一个不同的大小写。我一开始就用它,但不起作用,这就是我在这里发布的原因。谢谢。
<a href="javascript: openpopup()">Open Popup Window</a>