gpt4 book ai didi

javascript:打印通过ajax接收到的文本

转载 作者:行者123 更新时间:2023-11-29 09:53:29 24 4
gpt4 key购买 nike

这就是我想要做的:

  1. 用户点击打印按钮;
  2. 此调用函数,该函数执行 ajax 调用以获取要打印的文本;
  3. 一个新窗口打开,文本被写入此窗口。

窗口和打印是这样处理的:

 my_text = "hello";

newWin= window.open();
newWin.document.write(my_text);
newWin.document.close();
newWin.focus();
newWin.print();
newWin.close();

这很好用。我的问题是如何获取 my_text。我试图将上面的代码放在 ajax 调用中:

$.ajax({
type: "GET", url: the_url, data: {},
success: function(data){
newWin= window.open();
newWin.document.write(data);
newWin.document.close();
newWin.focus();
newWin.print();
newWin.close();
}
,error: function() {
}
});

但是,这会导致新窗口被视为弹出窗口并被弹出窗口阻止程序捕获。如果我选择查看弹出消息,那么它已经正确填写了文本。我尝试先打开窗口,但没有写入任何内容。

最佳答案

尝试移动线:

newWin = window.open();

在 $.ajax(...) 调用之前。您的窗口将立即打开,当 ajax 调用完成时,您的成功处理程序应该能够写入它。你最终会得到类似的东西:

var newWin = window.open();
$.ajax({
type: "GET", url: the_url, data: {},
success: function(data){
newWin.document.write(data);
newWin.document.close();
newWin.focus();
newWin.print();
newWin.close();
}
,error: function() {
}
});

为“概念验证”目的使用 setTimeout 的简化版本。

<html>
<head>
<script>
function openWindow() {
var win = window.open("about:blank", "", "width=800,height=600");
setTimeout(function() {
win.document.write("Hello world!");
win.document.close();
}, 1000)
}
</script>
</head>
<body>

<button type="button" onclick="openWindow()">Click me</button>

</body>
</html>

关于javascript:打印通过ajax接收到的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17348605/

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