【问题标题】:window.close not working in Chromewindow.close 在 Chrome 中不起作用
【发布时间】:2016-07-14 08:03:07
【问题描述】:

你好,我在 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) 第一次工作但第二次条件总是错误。

【问题讨论】:

    标签: javascript jquery laravel


    【解决方案1】:

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

    这里有答案:

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

    【讨论】:

    • 你好 taha 谢谢你的建议,但它在 Firefox 中工作正常,但 window.close 事件在 chrome 中不起作用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-29
    • 1970-01-01
    • 1970-01-01
    • 2020-09-20
    • 1970-01-01
    相关资源
    最近更新 更多