gpt4 book ai didi

javascript - 如果 ajax 响应包含 window.print,它就会循环

转载 作者:行者123 更新时间:2023-11-30 17:10:49 25 4
gpt4 key购买 nike

我想在收到 ajax 响应时打印屏幕。这是我的代码:

function print() {
var request = new XMLHttpRequest();
request .open("GET", "printPage.html", true);
var counter = 0;

request.onload = function() {
if (request.status >= 200 && request.status < 400){
console.log("success");

window.print();

} else {
// We reached our target server, but it returned an error

}
};

request.onerror = function() {
// There was a connection error of some sort
};

request.send();

}

但是我得到了一个无限循环的响应(我多次在控制台上看到“成功”),就像 windows.print() 再次调用相同的 ajax 调用一样。我的代码有什么问题?我怎样才能打印页面?

最佳答案

我猜该代码在全局范围内。

所有的全局变量(全局函数,全局变量)实际上都是全局对象的属性,我们在浏览器上称之为window*。因此,通过使用名称 print 定义您的函数,您已经覆盖了通常的 window.print 函数。因此,通过在您的函数中调用 window.print,您是在调用您的函数,而不是通常的 window.print

只需将您的函数名称更改为其他名称即可。


( * "我们在浏览器上称之为 window"从技术上讲,window 是一个全局变量,因此它是全局对象的一个​​属性,在浏览器,它用来指代自己。)

关于javascript - 如果 ajax 响应包含 window.print,它就会循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27062375/

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