window.close在Chrome中不起作用

window.close not working in Chrome

本文关键字:不起作用 Chrome close window      更新时间:2023-09-26

你好,我在Laravel工作,我需要打开一个弹出窗口,关闭弹出窗口后,我应该进行ajax调用。它在Firefox中运行良好,但在Chrome中它只能使用第一次,而不能第二次工作。这是我的代码:

<span class="input-group-addon add_btn">
    <a onclick="OpenClassRoomNewTab('#/roomno?iframe=true');" id="dayvisitStudents3" class="btn btn-primary">+</a>
</span>
// JavaScript   
function OpenClassRoomNewTab(url) {
   winchild = window.open(url, '_blank', 'height=500,width=500');
   winchild.onunload = function () {
      var win = winchild.opener;
      if (!winchild.closed) {
          win.roomBind();
      }
   }
}
function roomBind() {
    window.setTimeout(function () {
        if (winchild.closed) {
            $.ajax({
                type: 'post',
                data: '',
                url: '<?php echo url('refreshdropdown'); ?>',
                success: function (responseText) {  
                    if (responseText) { 
                        $('#classRoomArea').empty();
                        $('#classRoomArea').append(responseText.roomno);
                    }
                }   
            }); 
        }
    }, 1);
}

我尝试调试代码,如果 (winchild.closed) 第一次工作但第二次条件总是 false,问题就出在这一部分。

我认为你应该改变你的思维方式。在 winchild(弹出窗口)上,编写一个卸载事件,该事件会在 window.opener 上触发一个方法。

这里回答:

https://stackoverflow.com/a/1777985/916000