gpt4 book ai didi

javascript - AjaxComplete 不工作

转载 作者:行者123 更新时间:2023-11-30 17:43:28 24 4
gpt4 key购买 nike

我正在研究用于打印 IFrame 的 Opera 解决方法。现在我们都知道打印iframe的唯一方法就是在新窗口中打开然后打印。我面临的问题是,当我的 IFrame 在新窗口中打开时,会触发一系列 ajax 调用,我想在所有 ajax 调用完成后打开打印窗口。我搜索了一下,找到了全局回调事件ajaxComplete。我的代码是这样的:

if($.browser.opera){
var href = $("iframe:visible")[0].contentWindow.location.href;
var printWindow = window.open(href, "printWindow", "scrollbars=yes");
printWindow.onload = function(){
$(this.document.getElementsByClassName("f-buttons")).hide();
$(this.document.getElementsByClassName("f-progress")).hide();

}
$(printWindow.document.body).ajaxComplete(function( event, xhr, settings ){
printWindow.print();
});
$(printWindow).ajaxComplete(function( event, xhr, settings ){
printWindow.print();
});


}

我不确定为什么一开始事件没有被触发我在文档上试过了,因为 ajaxComplete 的文档显示它应该只附加到文档,但有些人在这里建议它也可以附加到 body 上所以我也在 body 上试过这个,但它没有被初始化。谁能告诉我我错过了什么?

最佳答案

来自 jQuery 文档,第一个:

As of jQuery 1.8, the .ajaxComplete() method should only be attached to document.

和第二个:

If $.ajax() or $.ajaxSetup() is called with the global option set to false, the .ajaxComplete() method will not fire.

我不知道您是如何调用 AJAX 的,但我可以看到您将 ajaxComplete 方法附加到“正文”,而不是像文档所说的那样附加到“文档”。

试试这些,让我知道发生了什么。

关于javascript - AjaxComplete 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20604041/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com