window.close无法在Chrome中运行

时间:2016-07-14 08:03:07

标签: javascript jquery laravel

您好我在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)第一次工作但第二次条件总是假的话,问题出在这部分。

1 个答案:

答案 0 :(得分:0)

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

在这里回答:

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