javascript - 当子窗口打开并完成加载时收到通知

标签 javascript ajax window.open

如何检查子窗口何时打开并且其内容全部从服务器接收并完全加载?

我正在做的是显示一个ajax通知程序.gif,因为这个window.open大约需要15秒,我需要给用户一些东西看。

这是我尝试过的一种方法,但是一旦窗口打开,ajax 加载器通知程序就会关闭,这是可以预料的,但我已经将其作为示例了。

AlumCloud.showAjaxLoader();

 if (window.open(['/api/rollup?f=', getResponseFormatOpt(), '&ids=', options.ids.join(','), '&lbls=', options.addLbls].join(''), '_blank',
                 'width=' + WIN_OPEN_WIDTH + ',height=' + WIN_OPEN_HEIGHT, false)) {

  AlumCloud.removeAjaxLoader();
    };

当窗口打开并完全加载其内容时,如果有回调就好了。

但是,如果有另一个时间间隔来继续检查窗口是否已加载,我可以设置一个时间间隔。

<小时/>

这是让我非常接近但不起作用的东西。

    var url = ['/api/rollup?f=', getResponseFormatOpt(), '&ids=', options.ids.join(','), '&lbls=', options.addLbls].join('');
    $.ajax({
        url: url,
        cache: true,
        complete: function (jqXHR, textStatus) {

           var w = window.open("", '_blank', 'width=' + WIN_OPEN_WIDTH + ',height=' + WIN_OPEN_HEIGHT, false);

            w.document.body.appendChild($('<iframe src="' + url + '" width="100%" height="100%" >').get(0));
        }
    });

如果我将该 iframe 附加到当前窗口,它会起作用,但如果我尝试将 iframe 附加到我正在打开的新窗口,则不起作用。

最佳答案

这就是你可以做到的。

JS

$.ajax({

    url: "YourajaxcallURL",
    data: "DataIfany",
    beforeSend: function () {
        // this is where we append a loading image
        $('#ajax-panel').html('<div class="loading"><img src="loading.gif" alt="Loading..." /></div>');
    },
    success: function (data) {
        $('#ajax-panel').empty();

    },
    error: function (data) {
        $('#ajax-panel').empty();
    }
});

并将其添加到您的HTML中:

 <div id="ajax-panel"> </div>

CSS:

#ajax-panel {
  position: absolute;
}

关于javascript - 当子窗口打开并完成加载时收到通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20303104/

相关文章:

php - 使用 AJAX 将数据记录到数据库

javascript - 如何发出 CORS 请求

javascript - window.open 带标题

javascript newwindow.document.getElementById 有时不起作用

javascript - 当子类扩展父类(super class)时,为什么要重置对象构造函数?

javascript - 切换回来并强制多个 css 元素的优雅方式

javascript - 从扩展名访问文件有时会返回 NS_ERROR_FILE_IS_LOCKED

ajax - 如何在ExtJs中从ajax加载json数据

javascript - 生成的 Julia 集和维基百科图像之间的差异

javascript - window.open 宽度在 Chrome 中被忽略