gpt4 book ai didi

javascript - Window.print() 在 window.location.replace 之前运行

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

我当前的代码正在尝试重定向到具有更可打印版本的信息的页面,我正在使用 window.location.replace 将页面替换为打印友好页面,然后使用 window.print() 将其打印出来,但是它会在替换页面并尝试打印上一页之前出现打印提示。关于为什么会发生这种情况有什么建议吗?

function btnIncidentPrint(id)
{
window.location.replace('<c:url value="/print/?objtype=INCIDENT&type=INCIDENT&id="/>'+id);
window.print();
}

最佳答案

浏览器可能不会立即响应window.location 的变化;可能会有延迟。

但是一旦它响应了 window.location 的变化,它将不再运行你的任何代码,所以你将无法 window.print() 了!

一种解决方案是将打印友好的 View 放在另一个窗口或框架中,然后在该窗口而不是要替换的窗口上调用 .print()。您可以立即移除框架,以免它弄乱页面。

var iframe = document.createElement('iframe');
iframe.onload = function() {
iframe.contentWindow.print();
iframe.parentNode.removeChild(iframe);
};
iframe.src = '?view=print';
document.body.appendChild(iframe);

关于javascript - Window.print() 在 window.location.replace 之前运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44813134/

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